gpt4 book ai didi

php - 无法使用 PHP $_POST[] 变量检索 jQuery 序列化表单数据

转载 作者:行者123 更新时间:2023-12-01 04:01:19 25 4
gpt4 key购买 nike

使用 Ajax jQuery 函数 $.post(),我将 jQuery serialized() 表单数据发送到 PHP 函数,该函数在 $ 中成功接收它_POST[] 但个别 $_POST['form_field'] 变量为空。

在我的 PHP 函数中,print_r($_POST) 成功显示表单数据:

Array ( [action] => send_message [data] => modal_name=olivier&modal_email=olivier%40hotmail.com&modal_message=Hello+world )

但是 $_POST['modal_name']$_POST['modal_email']$_POST['modal_message']是空的。为什么?

HTML:

<form id='contact'>
<input type='text' name='modal_name' id='modal_name' />
<input type='email' name='modal_email' id='modal_email' />
<textarea name='modal_message' id='modal_message'></textarea>
</form>

JS:

$('#contact').on('submit', function(e) {
e.preventDefault();
if (modal_name && modal_email && modal_message) {
var data = {
action: 'send_message',
data: $(this).serialize()
};
$.post(WPaAjax.ajaxurl, data, function(response) {
$('.modal').append(response);
});
}
});

最佳答案

使用$(this).serializeArray()代替$(this).serialize()

引用:- https://api.jquery.com/serializeArray/

两者的区别:- https://stackoverflow.com/a/10430571/4248328

您需要执行以下操作:-

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form id='contact'>
<input type='text' name='modal_name' id='modal_name' />
<input type='email' name='modal_email' id='modal_email' />
<textarea name='modal_message' id='modal_message'></textarea>
<input type="submit" value = "submit">
</form>

<script type="text/javascript">
$('#contact').on('submit', function(e) {
e.preventDefault();
if (modal_name && modal_email && modal_message) {
var data = $(this).serializeArray();
data.push({name: 'action', value: 'send_message'});
$.post('query.php', data, function(response) {
$('.modal').append(response);
});
}
});
</script>

在 php 中:-

<?php

if(!empty($_POST)){
echo "<pre/>";print_r($_POST);
}
?>

它将输出如下:-

<pre/>Array
(
[modal_name] => sdsadsa
[modal_email] => a@gmail.com
[modal_message] => sadada
[action] => send_message
)

注意:- 如果您想使用serialize(),则只需执行以下操作:-

<script type="text/javascript">
$('#contact').on('submit', function(e) {
e.preventDefault();
if (modal_name && modal_email && modal_message) {
var data = $(this).serialize()+ '&action=send_message';
$.post('query.php', data, function(response) {
$('.modal').append(response);
});
}
});
</script>

关于php - 无法使用 PHP $_POST[] 变量检索 jQuery 序列化表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42623577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com