gpt4 book ai didi

javascript - 如何通过 Ajax post 接收表单 NAME?

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

在我的网站中,我有不同的页面和不同类型的表单。我想使用 Ajax 将所有表单提交到“process.php”,并在“process.php”处理数据。但是,在通过 Ajax 发布数据时,我无法捕获“process.php”处的表单名称或表单提交名称。

谁能告诉我如何知道从“process.php”提交了哪个表单?

我尝试了以下失败的步骤:

更改密码.PHP

<form id="change_password_form" action="process.php" method="POST">
<input type="password" id="current_password" name="current_password" />
<input type="password" id="new_password" name="new_password" />
<input type="password" id="confirm_password" name="confirm_password" />
<input type="submit" value="change password" id="submit" name="change_password" />
</form>

AJAX.JS

$("#submit").click(function(e){
e.preventDefault();
$.ajax({
url:"process.php",
type:"POST",
data:$("#change_password_form").serialize(),
success: function(data){
$("#msg").html(data);
},
});

});

PROCESS.PHP

if(isset($_POST['change_password'])){
echo("<p>".$_POST['current_password']."</p>");
echo("<p>".$_POST['new_password']."</p>");
echo("<p>".$_POST['confirm_password']."</p>");
}

上面的代码没有回显任何内容,因为 Ajax 没有发布 INPUT >TYPE >SUBMIT 。这是它发布的内容:

Array
(
[current_password] => 12345
[new_password] => 123
[confirm_password] => 12
)

如何让 Ajax 发布 input>type>submit ?否则,如果我将多个表单数据发布到同一个 PHP 文件进行处理,我如何让 PHP 知道哪个表单已提交?

我们将非常感谢您的回复。我是不是说得太详细了?我的歉意摆在你面前。

最佳答案

您可以为每个表单指定一个名称。例如,在上面的形式中,

<form name="change_password_form" id="change_password_form" action="process.php" method="POST">
<input type="password" id="current_password" name="current_password" />
<input type="password" id="new_password" name="new_password" />
<input type="password" id="confirm_password" name="confirm_password" />
<input type="submit" value="change password" id="submit" name="change_password" />
</form>

然后在你的 JavaScript 中,

$("#submit").click(function(e){
e.preventDefault();
$.ajax({
url:"process.php",
type:"POST",
data:$("#change_password_form").serialize()+'&form_name='+$("#change_password_form").attr("name"),
success: function(data){
$("#msg").html(data);
},
});

});

在你的 PHP 文件中,

if(isset($_POST['form_name'])){
if($_POST['form_name']=="change_password_form")
{
echo("<p>".$_POST['current_password']."</p>");
echo("<p>".$_POST['new_password']."</p>");
echo("<p>".$_POST['confirm_password']."</p>");
}
//Similarly, add your other form processing code.
}

注意:您永远不应该信任用户输入。 $_POST 元素可以轻松操作。在将输入插入数据库之前始终对输入进行转义,或使用 PDO .

关于javascript - 如何通过 Ajax post 接收表单 NAME?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23585255/

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