gpt4 book ai didi

php - 从 View 表单到 PHP Controller 的 jquery post 未发布

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

$id 的值由 php 文件“afile.php”决定,该文件使用 include('view_file.php') 获取 View 。我希望“view_file.php”中的表单将数据发送回“afile.php”并使用它再次确定 $id 的值。

来自“view_file.php”:这是我的 jquery/javascript:

function vote() 
{
$.post('afile.php',{ poll:$('input:radio[name=poll]:checked').val(), id: $('input:hidden[name=id]').val()});
};

这是我的表格:

 <form name='poll' id='poll'>
<INPUT TYPE="radio" name='poll' value='poll3' checked/>Yes
<INPUT TYPE="radio" name='poll' value='poll2'/>Done
<INPUT TYPE="radio" name='poll' value='poll1'/>No
<INPUT TYPE='button' value='submit' onClick="vote();" />
<INPUT TYPE='hidden' name='id' value='<?php echo $id; ?>'/>
</form>

来自“afile.php”:

if(isset($_POST['poll']))
{
//code
}
else
//code
include('view_file.php');

但是,该帖子从未设置过,我就是不明白为什么会这样。

任何帮助/提示/建议表示赞赏。

编辑:我意识到我可以轻松地做到这一点,而无需合并 jquery/javascript。只需使用 HTML POST 方法即可:

<form name='poll' action='afile.php' method='POST'>
<INPUT TYPE="radio" name='poll' value='poll3' checked/>Yes
<INPUT TYPE="radio" name='poll' value='poll2'/>Done
<INPUT TYPE="radio" name='poll' value='poll1'/>No
<INPUT TYPE='submit' value='submit' />
<INPUT TYPE='hidden' name='id' value='<?php echo $id; ?>'/>
</form>

最佳答案

您可以使用 $('formSelector').serialize() 直接从表单获取发布数据,而无需获取每个输入的值。复选框和单选按钮仅在 :checked 时发送 POST 数据。

现在,无论表单的名称是什么,它都不会传递到 $_POST,因此您的条件

if(isset($_POST['poll']))

将始终为 false,因为没有名称为“poll”的输入。如果有多个表单提交到同一页面,我通常会在提交按钮中添加一个名称。

编辑:在本地测试时,以下代码完美运行:

<?php

$id = 1;
if (!empty($_POST)) {
if (!empty($_POST['poll'])) {
echo "POLL IS NOT EMPTY!! \n";
var_dump($_POST);
die();
}
else {
echo "BOO! POLL IS EMPTY! \n";
var_dump($_POST);
die();
}
}


?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="author" content="Rikudo Sennin" />

<title>Untitled</title>

<script src="http://code.jquery.com/jquery-latest.js"></script>

<script>
$(function() {
$('#poll').submit(function() {
$this = $(this);
$.post(
"form-get-test.php",
$this.serialize(),
function(data) {
alert(data);
}
)

return false;
});
})

</script>
</head>

<body>

<form name='poll' id='poll'>
<INPUT TYPE="radio" name='poll' value='poll3' checked/>Yes
<INPUT TYPE="radio" name='poll' value='poll2'/>Done
<INPUT TYPE="radio" name='poll' value='poll1'/>No
<INPUT TYPE='button' value='submit' onClick="vote();" />
<INPUT TYPE='hidden' name='id' value='<?php echo $id; ?>'/>

<button type="submit" name="poll_submit">Send</button>
</form>

</body>
</html>

关于php - 从 View 表单到 PHP Controller 的 jquery post 未发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7031878/

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