Javascript (button | | input)type=submit-jQuery AJAX中$u POST变量中缺少值
我有一个登录表单,其中有两个按钮-“登录”和“忘记密码”,我需要检查用户单击的按钮Javascript (button | | input)type=submit-jQuery AJAX中$u POST变量中缺少值,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有一个登录表单,其中有两个按钮-“登录”和“忘记密码”,我需要检查用户单击的按钮 <form id="loginForm"> <div class="login-error" id="login-error"></div> <input type="text" id="email" name="email"> <input type="password" id="password" name="password"> <input
<form id="loginForm">
<div class="login-error" id="login-error"></div>
<input type="text" id="email" name="email">
<input type="password" id="password" name="password">
<input type="submit" name="submit" value="Login">
<button type="submit" name="submit" value="Forgot password?">Forgot password?</button>
</form>
我尝试了两种方式(输入类型=提交和按钮类型=提交),但没有一种发送“提交”值
(我正在使用jQueryAjax)
请问你知道问题出在哪里吗?我知道,有很多关于按钮价值的帖子,但都不适合我。我也试过这个例子:
检查提交输入和按钮的名称是否不同会容易得多 您当前的设置如下所示:
<input type="submit" name="submit" value="Login">
<button type="submit" name="submit" value="Forgot password?">Forgot password?</button>
然后您可以对其运行检查,例如
if (isset($_POST['submit'])){
stuff here
}
还有一张单独的支票
if (isset($_POST['forgot'])){
stuff here
}
如果您以不同的方式命名提交输入和按钮,那么检查会容易得多 您当前的设置如下所示:
<input type="submit" name="submit" value="Login">
<button type="submit" name="submit" value="Forgot password?">Forgot password?</button>
然后您可以对其运行检查,例如
if (isset($_POST['submit'])){
stuff here
}
还有一张单独的支票
if (isset($_POST['forgot'])){
stuff here
}
.serializeArray()或.serialize()方法使用成功控件的标准W3C规则来确定它应该包含哪些元素;尤其是不能禁用元素,元素必须包含名称属性。由于未使用按钮提交表单,因此未序列化任何提交按钮值。文件选择元素中的数据未序列化
参考
.serializeArray()或.serialize()方法使用标准的W3C规则来确定它应该包含哪些元素;尤其是不能禁用元素,元素必须包含名称属性。由于未使用按钮提交表单,因此未序列化任何提交按钮值。文件选择元素中的数据未序列化
参考
如果函数中没有事件,则不会阻止提交函数,默认情况下会调用get,并且$\u POST肯定为空 改变 到 再做一次改变
data: values,
到
删除一个提交类型应该只有一个提交类型使其成为按钮类型并调用按钮单击功能通过ajax提交,其工作方式与提交相同。如果函数中没有事件,则不会阻止提交功能,默认情况下会调用get,并且$\u POST肯定为空 改变 到 再做一次改变
data: values,
到
删除一种提交类型只有一种提交类型使其成为按钮类型并调用按钮单击功能通过ajax提交,其工作方式与提交相同。这是一种方法,使用特定的单击按钮名称属性关联数据字符串: HTML: 但更好的做法是根据单击的按钮针对特定的服务器端脚本,例如: HTML:
这是一种方法,将数据字符串与特定的单击按钮名称属性相关联: HTML: 但更好的做法是根据单击的按钮针对特定的服务器端脚本,例如: HTML:
value属性将在您的网页上显示按钮的名称?不是吗?它不像其他字段那样被视为值。但是您可以这样做不,在按钮上,value属性以传统方式使用,如中,用于传递值。这是因为按钮是以传统方式使用的按钮文本,以防万一您还没有读到这篇文章。注意,设置
name=“submit”
您正在覆盖默认的DOMsubmit()
方法。也就是说,我很确定这个问题是重复的:顺便说一句,似乎更适合使用表单的submit
事件,而不是单击事件。如果点击了电子邮件
,你真的想向服务器发送数据吗???@JackDavis事实上,你可以这样处理:但是,依我看,你最好针对不同的服务器脚本,因为请求用于登录,或者“忘记密码”值属性将在你的网页上显示按钮的名称?不是吗?它不像其他字段那样被视为值。但是您可以这样做不,在按钮上,value属性以传统方式使用,如中,用于传递值。这是因为按钮是以传统方式使用的按钮文本,以防万一您还没有读到这篇文章。注意,设置name=“submit”
您正在覆盖默认的DOMsubmit()
方法。也就是说,我很确定这个问题是重复的:顺便说一句,似乎更适合使用表单的submit
事件,而不是单击事件。如果点击了电子邮件,你真的想向服务器发送数据吗?@JackDavis事实上,你可以这样处理:但是我想,你最好针对不同的服务器脚本,因为请求是为了登录或“忘记密码”。问题是,两个按钮值都不能发送到服务器。您好,谢谢,但还有其他问题。变量$u POST['submit']没有以任何方式设置,因此当我将其重命名为任何其他变量时,它也不会被设置。哦,对了。很抱歉。请参阅另一个答案中有关.serializeArray()或.serialize()
的建议。我只是在解决一个小问题。问题是,两个按钮的值都没有进入服务器。您好,谢谢,但还有其他问题。变量$u POST['submit']没有以任何方式设置,因此当我将其重命名为任何其他变量时,它也不会被设置。哦,对了。很抱歉。请参阅另一个答案中有关.serializeArray()或.serialize()
的建议。我只谈到了一个小方面。这是关于Firefox不使用window.event
模型的一个好观点,但我不确定这是如何回答这个问题的?!你好,谢谢,但结果是一样的。在这种情况下应该有区别吗?这是一个关于Firefox不使用window.event
模型的好观点,但我不确定这是如何回答这个问题的?!你好,谢谢,但结果是一样的。在这种情况下应该有区别吗?
data: values,
data:$("#loginForm").serialize(),
<form id="loginForm">
<div class="login-error" id="login-error"></div>
<input type="text" id="email" name="email">
<input type="password" id="password" name="password">
<button type="button" name="login" class="submit">Login</button>
<button type="button" name="forgot" class="submit">Forgot password?</button>
</form>
$("#loginForm").on('click', '.submit', function (event) {
/* Stop form from submitting normally */
event.preventDefault();
/* Get some values from elements on the page: */
var values = $(this).closest('form').serialize() + '&' + this.name;
console.log(values);
/* Send the data using post and put the results in a div */
$.ajax({
url: "login.php",
/* here is echo var_dump($_POST); */
type: "post",
data: values,
success: function (data) {
$("#login-error").html(data);
},
error: function () {
$("#result").html('There is error while submit');
}
});
});
<form id="loginForm">
<div class="login-error" id="login-error"></div>
<input type="text" id="email" name="email">
<input type="password" id="password" name="password">
<button type="button" name="login" class="submit" data-url="login.php">Login</button>
<button type="button" name="forgot" class="submit" data-url="forgot.php">Forgot password?</button>
</form>
$("#loginForm").on('click', '.submit', function (event) {
/* Stop form from submitting normally */
event.preventDefault();
/* Get some values from elements on the page: */
var values = $(this).closest('form').serialize();
/* Send the data using post and put the results in a div */
$.ajax({
url: $(this).data('url'),
/* here is echo var_dump($_POST); */
type: "post",
data: values,
success: function (data) {
$("#login-error").html(data);
},
error: function () {
$("#result").html('There is error while submit');
}
});
});