文件中有多种查询形式,您需要进行表单检查,如果不这样做,所有带有查询的表单都会被执行,对我来说这是不正确的。在if (isset($_POST ['form_name']))
的帮助下,我做了检查,但没有退出。有什么问题?
<form id="form" method="POST">
<input type="text" name="telephone[]">
<input type="text" name="telephone[]">
<input type="hidden" name="form_name" value="form_ex">
<button type="submit" name="update" id="btn_post_phones" value="button_value">Update phone</button>
</form>
if (isset($_POST['form_name'])) {
var_dump ('true -->');
echo "<pre>";
var_dump(json_decode($_POST["phones"], true));
} else {
var_dump ('false-->');
echo "<pre>";
var_dump(json_decode($_POST["phones"], true));
}
//string(8) "false-->"
//array(2) {
// [0]=>
// string(6) "345345"
// [1]=>
// string(6) "345345"
//}
$('#form').submit(function(event) {
var arrPhones = new Array();
event.preventDefault();
$('input[name="telephone[]"]').each(
function() {
arrPhones.push($(this).val());
});
var data='phones='+JSON.stringify(arrPhones);
$.ajax({
type: 'POST',
url: 'regist.php',
dataType: 'json',
data: data,
// data: $('input[name="telephone[]"]').serialize,
beforeSend: function(){
console.log('before ' + data);
},
success: function(response){
console.log(response);
}
});
});
答案 0 :(得分:2)
1.删除var data='phones='+JSON.stringify(arrPhones);
2.而不是data: data,
写data:{'phones':JSON.stringify(arrPhones)},
3.而不是if (isset($_POST['form_name'])) {...}
使用if (isset($_POST['phones'])) {...}