gpt4 book ai didi

javascript - Ajax 调用成功,但无法从 $_POST 获取单选值

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

我的网站是完全异步的,大部分 html 都是在按下按钮时创建和销毁的,并且每个 html 都会阻止导航。

在这一部分,我生成了一个带有“速率 1 到 10”单选框数组的表单,使用 jQuery.ajax() 发布它,并将其发送到处理,它要么回显(暂时),要么回显“没有选择任何内容” ”。

这是表格,

<?php
<form id="surveyForm" action="processSurvey.php" method="post">

<h3>Alimentos</h3>

<h4>Sabor</h4>
<div class="form-group">';
for ($i = 0; $i <= 10; $i++) {
echo '
<span class="lead form-options">' .'</span>
<label class="radio-inline">
<input type="radio" name="sabor" id="saborRadio'. $i .'" value="'. $i .'">'. $i.'
</label>';

}
echo '
</div>

<div class="form-group">
<button class="btn btn-default surveyForm-btn" type="submit">Enviar</button>
</div>

</form>
?>

这是 JavaScript:

$('body').on('click', '.surveyForm', function(){
console.log("Clicked on .surveyForm-btn");
var data = $('#surveyForm').serialize();
console.log( data );
$.ajax({
method: "POST",
url: "processSurvey.php",
data: data,
success: function(result){
console.log("Ajax call to processSurvey success");
$("#surveyForm").clearForm();
console.log(result);
console.log( data );

}
});
return false;
});

这是 php 进程:

<?php
if (isset($_POST['sabor'])) // if ANY of the options was checked
echo $_POST['sabor']; // echo the choice
else
echo "nothing was selected.";
print_r($_POST);
?>

这是单击“使用选定的单选框提交”后的控制台:

Clicked on #surveyForm
[EMPTY LINE]
Ajax call to processSurvey success
nothing was selected.
[EMPTY LINE]

表示提交成功,但表单数据为空。从昨天开始,我一直在试图找到问题所在,我很确定我传递的数据是错误的,但在谷歌中找不到任何我没有尝试过的东西。

编辑:添加了大多数建议,问题仍然存在。也许html结构是错误的?表单和提交似乎没有连接。

编辑2:我发现了一些很奇怪的东西,在最终的代码中似乎有一个额外的结束标签,就像这样

<form id="surveyForm" action="processSurvey.php" method="post"></form>
<h3>Alimentos</h3>
<h4>Sabor</h4>

我不知道这是从哪里来的,但这肯定是问题所在。

最佳答案

这里有很多注释

1-您可能会对 form id='surveyForm'button class='surveyForm' 感到困惑,因此最好将其稍微更改为 button class= 'surveyForm_btn'

2-我认为你应该序列化表单而不是按钮

var data = $('#surveyForm').serialize(); // not .surveyForm

3- ID 必须是唯一的

4- $("#surveyForm").clearForm();//不是 .surveyForm

最后检查所有评论

而且更好用

$('body').on('submit', '#surveyForm', function(){});

编辑后的答案:1-请检查每个步骤后的所有内容

<form id="surveyForm" action="processSurvey.php" method="post">
<h3>Alimentos</h3>
<h4>Sabor</h4>
<div class="form-group">
<button class="btn btn-default surveyForm-btn" type="submit">Enviar</button>
</div>
</form>

在js中

$('body').on('submit', '#surveyForm', function(){
var data = $(this).serialize();
$.ajax({
method: "POST",
url: "processSurvey.php",
data: data,
success: function(result){
console.log(result);
}
});
return false;
});

在 PHP 中

<?php
echo 'Connected successfully';
?>

此代码将在控制台中输出“已成功连接”..如果此工作添加您的 for 循环并再次进行检查

关于javascript - Ajax 调用成功,但无法从 $_POST 获取单选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31709851/

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