【发布时间】:2018-02-06 21:11:27
【问题描述】:
我正在尝试使用 AJAX 将数据提交到数据库。我有一个数组,我必须使用 AJAX 将数组的值传递给 PHP 以显示所有相关记录。
<form id="search-form" method="POST">
<input value="4869" name="compare_id[]" type="hidden">
<input value="4884" name="compare_id[]" type="hidden">
<input value="5010" name="compare_id[]" type="hidden">
<input type="button" id="search-button" name="search-button" value="search">
</form>
<div id="response"></div>
AJAX
<script>
$(document).ready(function(){
$('#search-button').click(function(){
$.ajax( {
type: 'POST',
url: 'response.php',
data: $('#search-form').serialize(),
dataType: 'json',
success: function(response) {
$('#response').html(response);
//alert(response);
}
});
});
});
</script>
PHP
$sql='SELECT Name, Email FROM request WHERE Id IN (' .( is_array( $_POST['compare_id'] ) ? implode( ',', $_POST['compare_id']) : $_POST['compare_id'] ).')';
$records = array();
$query=$conn->query($sql);
if ($query->num_rows > 0) {
while($row=$query->fetch_assoc()){
$records[]=$row;
}
}
echo json_encode($records);exit();
【问题讨论】:
-
您正在尝试在此处添加带有字符串的数组
data:'all='+compare_id,,将您的数组转换为 json 格式然后传递,或者只是将数组传递为data:compare_id, -
表单中的字段必须具有唯一的
id和name -
compare_id.push($(this).val());将获得按钮的值而不是隐藏元素 -
@B.Desai,但我有相同的名称和 ID,因为在 AJAX 的帮助下,我正在显示该输入字段。
标签: php jquery mysql json ajax