1

PHP と Javascript/Ajax は初めてなので、ご容赦ください。

私がする必要があるのは、Ajax から変数を取得し、php で変数として設定することだけです。スーパーグローバルでこれをやろうとしていますGETが、何かが正しくありません。フォームを送信してこれをしたくありません。

ここに私のJSがあります:

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です:

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..

ご覧のとおり、今はこの変数をエコーするだけで、後でこれを使用してクエリを記述します。

4

2 に答える 2

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>
于 2013-03-07T21:10:50.750 に答える
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";
 }
?>

この例を実行すると、Web ページに「Hello World」というテキストのアラート ボックスが表示されます。値を他の数値に変更すると、「Hello Hell」というテキストのアラートが表示されます。

それがあなたの質問に答えることを願っています。

于 2013-03-07T20:27:27.360 に答える