这是我用来将表单详细信息发送到 php 函数的 jQuery 代码:
jQuery(document).ready(function($) {
jQuery('.submit').click(function(){
var str = $("#ajaxForms").serialize();
var data = {
action: 'myajax-submit',
serialize: str,
beforeSend: function(){
alert('Sending...');
}
};
jQuery.post(MyAjax.ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
return false;
});
});
这是 php 函数:
function myajax_submit() {
$whatever = $_POST['serialize'];
echo $whatever;
die();
}
一切正常,但是当警告框出现时,文本显示来 self 的 html 表单的一串值 #ajaxForms
.我相信这是因为 php 函数回显了 $_POST['serialize']
.
在我的表单中,我有一个输入框,例如:
<input id="postID" name="postID" value="First Name" type="text" />
但是当我尝试回显 $_POST['postID']
时php 中的变量它不会在警告框中显示任何内容。
我想通过将序列化的表单数据发送到 php 函数,我可以使用与表单输入关联的 $_POST 变量?
感谢帮助。 :)
最佳答案
通过使用 jQuery 的序列化序列化表单输入,您可以创建如下字符串:
a=1&b=2&c=3&d=4&e=5&postID=10
为了获得 postId,您需要反序列化 $_POST['serialize']。为此,您应该执行以下操作:
parse_str($_POST['serialize'], $whatever);
现在 $whatever['postID']
就是您要搜索的内容。
编辑:修复 parse_str() :)
关于php - 在 ajax 数组中使用 jQuery .serialize() 将 PHP $_POST 作为变量传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8917622/