0

チェックボックスのテーブルと送信ボタンを備えたこのhtmlフォームがあります。ボタンがクリックされると、booked_seats 配列の値を別の php ページに渡したい ajax_function を呼び出します。これまでに行ったことは正しいので、先に進むことができるのだろうか。 ajax 関数は次のとおりです。

    <html>
    <script type="text/javascript" src="jquery.min.js">
    function ajax_function(){
    var count=0;
    var booked_seats=new Array(); // an array with all the checked 'seats'
    var t1=parseInt(document.getElementById("basic_ticket").value)
    var t2=parseInt(document.getElementById("red_ticket").value)
    var total_amount=t1+t2;
    var c = document.getElementById('myform').getElementsByTagName('input');
        for (var i = 0; i < c.length; i++) {
    if (c[i].type == 'checkbox' && c[i].checked==true){
        booked_seats[count]=c[i].id;
        count++;
    }


    }

   var ajaxRequest;  

   try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
   } catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
     }
   }
     // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        document.myform.time.value = ajaxRequest.responseText;
    }
   }

   $.ajax({
       url: "book_seats_sh1.php",
       data: JSON.stringify({ nameParameter: booked_seats }), //my array
       success: function(noOfResults) {
       alert(noOfResults);
       }
    });

}

そして、これがhtmlの本体です:

    <body>

    <form id="myform" action="book_seats_sh1.php" method="post">
    <table width="212" border="1">
    <tr>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y1" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y2" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y3" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y4" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y5" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y6" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y7" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y8" /></td>
    </tr>
    <tr>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y9" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y10" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y11" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y12" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y13" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y14" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y15" /></td>
     <td bgcolor="#FF9966"><input type="checkbox" name="Seat_choice[]" id="Y16" /></td>
    </tr>
    <tr>
      (etc.)

     </table>
     <input type="button" name="Book_tickets" id="Book_tickets" value="Κράτηση" 
     onclick="ajax_function()"/>
     </form>

     </body>
     </html>
4

1 に答える 1

0

パーツごと取り外しできます

var ajaxRequest;
...
ajaxRequest.onreadystatechange = function(){
...
}

すぐ後ろに、すでに jQuery ajax 呼び出しがあるため

$.ajax(...);

それ以外の場合、PHP ページが入力を JSON として想定している限り、コードは問題ないように見えます。

さらに、一方では使用しているのにjQuery.ajax()、他方ではプレーンな JavaScript を使用して入力パラメーターを収集するのはなぜですか?

于 2013-02-01T22:01:46.633 に答える