0

別の質問があります。ajaxと、ページのリロード/リダイレクトなしでチェックボックスフォームからデータを送信する方法についてです。次のコードがあります。これがマークアップです。

 <html>
   <head>
      <title>guild</title>
   </head>
   <body>
      <div id="dive">
         <form method="post" action="">
            <input type="checkbox" name="userList[]" value="together" />together<br />
            <input type="checkbox" name="userList[]" value="we" />we<br />
            <input type="checkbox" name="userList[]" value="made" />made<br />
            <input type="checkbox" name="userList[]" value="it" />it<br />
            <input type="submit" id="submit" value="yeah we did it!" />
         </form>
      </div>
      and here's the jquery:
      <script type="text/javascript" src="jquery-1.8.0.min (1).js"></script>
      <script type="text/javascript">
         $(document).ready(function(){
         //when the button is clicked
         $("#submit").click(function(){
         //put the checked data into an array
         var userList= $('#dive input[type=checkbox]:checked').serializeArray();
         //send the data without page reload/refresh/redirect
         $.post("guild.php", {userList: userList},function(userList)
         {
         });
         });
         });
      </script>
   </body>
</html>

したがって、チェックされたデータは、ファイルに書き込むphpファイルに送信されることになっています。スクリプトは次のとおりです。

<?php
//get sent data
$userList=$_POST['userList'];
//open file to be written to
$fp=fopen("guild.html", 'a');
//write data into file
for($i=0;$i<sizeof($userList);$i++) 
{
fwrite($fp, "<div class='gn'>."userList[$i]"."<br>"."</div>");
}
//close file
fclose($fp);
?>

これは非常に単純な質問であることは知っていますが、他の回答を読んだ後でも、それを機能させることはできません。チェックしたデータを文字列ではなく配列の形式で送信する必要があります。では、jqueryの部分をどのように変更して機能させるのでしょうか?助けてくれてありがとう、私は非常に初心者です!

4

2 に答える 2

3

jQueryの投稿ドキュメントによると、次のように投稿データ配列を送信する必要があります。

$.post("guild.php", { "userList[]": userList }...
于 2012-10-03T17:47:17.950 に答える
0

私はそのスクリプトを使用し、これを受け取ります:

Array ( [0] => [object Object] [1] => [object Object] )

私はこのコードを使用します:

function add_apartament ()
    {
var vedere= $('#vedere input[type=checkbox]:checked').serializeArray();
        $.ajax({
            type: "POST",
            url: "inc/ajax/add_apartament_action.php",
            data: { 
                    'vedere[]':vedere
                  },
            success: function (msg) {

                $("#action").html(msg);
            },
            error: function (xhr, err) {
                alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
                alert("responseText: " + xhr.responseText);
            }
        });


    }

そしてphp...

<?php

print_r($_POST['vedere']);

?>
于 2013-10-02T11:06:45.190 に答える