2013-03-07 2 views
1

저는 PHP와 Javascript/Ajax에 익숙하지 않으므로 제발 참아주십시오.AJAX를 사용하여 PHP 스크립트에 데이터를 보내려면 어떻게해야합니까?

내가해야 할 일은 Ajax에서 변수를 가져 와서 PHP에서 변수로 설정하는 것이다. 나는 슈퍼 글로벌 GET으로 이것을하려고 노력하고 있지만, 뭔가 옳지 않습니다. 나는이 양식을 제출함으로써 이것을 원하지 않습니다. 여기

function myFunction(){ 
var hora= document.getElementById("hora").value; 
$.ajax({ 
     type : 'GET', 
     url : 'reservation.php', 
     data : {hora: hora}, 
     success : function(data) { 
       console.log(hora);//This is because I was curious as to 
          // what the console would say. I found 
          // that this sets the super global if I 
          // change the url to something else that 
          // doesn't exist. Console would say 
          // -GET http://localhost/bus/(somepage).php?hora=4 
          // 404 (Not Found)- 
       alert(hora); 
       } 
}) 
} 

내 PHP의 : 여기

내 JS의

Hora: 
<select name="hora" id="hora" onchange="myFunction()"> 
    <?php 
     $query = "SELECT * FROM vans"; 
     $horas_result = mysql_query($query); 
     while ($horas = mysql_fetch_array($horas_result)) { 
     echo "<option value=\"{$horas["van_id"]}\">{$horas["time"]}</option>"; 
     } 
    ?> 
</select>&nbsp; 
Asientos Disponibles: 
    <?php echo $_GET["hora"]; ?> 
     //Right now I only want to echo this variable.. 

당신이 나중에 내가이 사용할 것, 지금 난 단지이 변수를 에코 싶어 볼 수 있듯이 질의를 작성하십시오.

예를 들어
+0

PHP 파일의 HTML은 렌더링되지 않습니다. reservation.php는 순수한 PHP 파일이어야하며 변수가 포함하는 정보 만 처리하는 데 사용됩니다. 그것은 사용자가 볼 수 있도록되어 있지 않습니다. – ILikeTacos

+0

@AlanChavez : PHP 결과가 AJAX 호출로 전송됩니다. 그가 원한다면 HTML 일 수 있습니다. –

+0

@RocketHazmat 내 잘못, 그건 사실이야. 파일은 순수한 PHP 일 필요는 없습니다. – ILikeTacos

답변

0

내가 게시 한 코드를 보면, AJax는 페이지를 새로 고칠 필요없이 데이터를 게시/가져 오는 데 사용되지만 데이터를 게시하고 다른 페이지에서 결과를 제공하려는 경우 대신 양식을 사용하십시오.

<?php 

    if (isset($_GET["hora"])) 
    { 
     echo $_GET["hora"]; 

     exit; 
    } 
?> 

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Page title</title> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

</head> 

<body> 

<script type="text/javascript"> 

     $(document).ready(function() 
      { 
       $("#hora").change(function() 
        { 
         $.ajax(
          { 
           type : 'GET', 
           url : '', 
           data : $('select[name=\'hora\']'), 
           success : function(data) 
            { 
             $('#ajax_result').html('Asientos Disponibles: ' + data); 
            }, 
           error: function(xhr, ajaxOptions, thrownError) 
            { 
             alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 
            } 
          } 
         ) 
        } 
       ) 

      } 
     ) 

</script> 

<select name="hora" id="hora"> 
    <?php 
     $query = "SELECT * FROM vans"; 
     $horas_result = mysql_query($query); 
     while ($horas = mysql_fetch_array($horas_result)) { 
     echo "<option value=\"{$horas["van_id"]}\">{$horas["time"]}</option>"; 
     } 
    ?> 
</select>&nbsp; 
    <div id="ajax_result"> 
    </div> 
</body> 
</html> 
+0

OK, 마침내 작동하게되었습니다. 하지만이 변수를 PHP로 사용할 수 있도록 설정하고 싶습니다. 이것이 가능한가? – user2145828

+0

@ user2145828 코드 시작 부분에 GET 액션과 관련된 PHP 코드가 있으므로 필요로하는 코드를 삽입 할 수 있습니다. 예를 들어 변수 hora를 사용하여 데이터베이스를 검색하고 원하는대로 출력 할 수 있습니다 (예 : 왼쪽 시트). . –

0

, 다음 스크립트

$.ajax({ 
      type: "POST", 
      url: "test.php", 
      data: {value:1} 
     }).done(function(msg) { 
        // msg contains whatever value test.php echoes. Whether it is code, or just raw data. 
      if(msg=="Success") { 
       alert("hello world"); 
       } else { 
       alert("Hello Hell") 
      } 
     }); 

설정합니다 변수 $_POST['value']

1에 내 test.php 보이는 같은 :

<?php 
if($_POST['value'] == "1") { 
    echo "Success"; 
} else { 
    echo "Failure"; 
} 
?> 

당신은 예의를 실행하는 경우 웹 페이지는 "Hello World"텍스트가있는 경고 상자를 표시합니다 다른 숫자로 값을 변경하면 sh 안녕하세요. "Hello Hell"이라는 문구가 있습니다.

질문에 대한 답변입니다.

관련 문제