0

チェックボックスのリストがあるがあり、ユーザーは任意の番号をクリックしてから[送信]をクリックできます。チェックボックスのリストは、mySQLクエリの結果に基づいて生成されます-

echo("<form id=\"target\" action = \"#\">");
echo("<ul>");
while($row = mysql_fetch_array($result) {
  $the_value = $row['result_value'];
  $the_label = $row['result_label'];
  echo("<li><input type='checkbox' name=\"ids[]\" value='" . $the_value . "'/> " . $the_label . "</li>\n");
echo("</ul>");
echo("<input type=\"submit\" value =\"Copy\">");
echo("</form>");

次に、送信用のjQueryハンドラーがあります

$('#target').submit(function() {
  alert(this.ids); // *See note below
  // I now want to call a PHP page, passing the array of ids so that this array can be used in a mySQL statement, then when complete notify the user it has succeeded
  return false;
});

*チェックボックスグループにids[]ではなく名前ids (name = \ "ids \")を指定すると、このアラートには「[objectNodeList]」と表示されます。

これをどのように処理すればよいですか?どうもありがとう

4

2 に答える 2

1

次のように、serializeメソッドを使用します。

$('#target').submit(function() {
  $.post('script.php', $(this).serialize(), function(data) {alert('The data was posted!');})
  return false;
});

http://api.jquery.com/serialize/

于 2010-07-12T13:59:17.377 に答える
0

AJAXリクエストまたは通常の送信を行いたいですか?

通常の送信は次のようになります。

<form id="target" action="action.php" method="post">
    <ul>
    <?php
    while($row = mysql_fetch_array($result)) {
        echo "<li><input type='checkbox' name='ids[]' value='{$row['value']}'/>{$row['label']}</li>";
    }
    ?>
    </ul>
    <input type="submit" value="Submit" />
</form>

AJAX送信の場合、ハンドラーは次のようになります。

$('#target').submit(function() {
    $.post('action.php', $(this).serialize(), function(data) {
        alert(data); // Data is your response;
    });
    return false;
});

次に、action.phpで、IDを取得します。

$idArray = $_POST['ids'];
于 2010-07-12T14:08:56.840 に答える