Как передать проверенные флажки форм на страницу PHP в виде массива с помощью функции отправки jQuery? - PullRequest
0 голосов
/ 12 июля 2010

У меня есть список с флажками, и пользователь может щелкнуть любое число, а затем нажать кнопку Отправить.Список флажков генерируется на основе результатов запроса 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;
});

* Если я дамфлажок группирует имя идентификаторы (имя = \ "идентификаторы \") вместо идентификаторы [] , тогда это предупреждение показывает "[object NodeList]"

Как мне справиться с этим?большое спасибо

Ответы [ 2 ]

1 голос
/ 12 июля 2010

вы используете метод сериализации, например:

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

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

0 голосов
/ 12 июля 2010

Вы хотите выполнить запрос 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, чтобы получить идентификаторы:

$idArray = $_POST['ids'];
...