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 (name=\"ids\") 而不是ids[],则此警报显示“[object NodeList]”

我该如何处理?非常感谢

4

2 回答 2

1

您使用序列化方法,如下所示:

$('#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 回答