有人可以帮我解决这个问题。 在检查数据库是否包含插入的电子邮件后,我必须提交表单。
电子邮件控制的PHP代码
$email = $_POST['email'];
$sql = "SELECT * FROM sc_user WHERE email='" . $email . "'";
$select = mysql_query($sql);
$row = mysql_num_rows($select);
$conn_object->connection_signout();
if($row > 0)
echo "exist";
else
echo "notexist";
用于在数据库中插入新用户的PHP代码
if (isset($_POST['submit_registration']))
{
$sql = "INSERT INTO sc_user (name, surname, email, password) VALUES ('" . $_POST['user_name'] . "',
'" . $_POST['user_surname'] . "', '" . $_POST['email'] . "', '" . md5($_POST['password']) . "')";
if (mysql_query($sql))
{
$conn_object->connection_signout();
}
header("Location: index.php");
}
我的部分JavaScript代码就是这个。
$(document).ready(function(){
$("#register_form").submit(function(evReg) {
evReg.preventDefault();
//other code...
$.post('../PHP/checkMail.php', {'email' : email}, function(data) {
if(data == 'exist')
{
$('#email_id').val('');
$('#email_id').attr('placeholder', 'User already registered with this email');
$('#email_id').addClass('placeholder_red');
$('#email_id').focus();
}
else
{
$(this).submit();
}
});
//this.submit();
//other code
如果我把" this.submit();"在外面" $。发布(...);"阻止表单将提交corectly,但如果在其中,我认为它没有找到表单,我认为。
对不起英语,我希望你能理解我的问题。
我已尝试使用此
document.getElementById("register_form").submit();
但它不起作用。我希望我能把你提供的所有信息都告诉你。
答案 0 :(得分:0)
它不起作用,因为你在$ .post()的回调函数范围内,所以$(this)没有正确引用你的表单,你可以尝试更改你的代码:
$("#register_form").submit(function(evReg) {
evReg.preventDefault();
var $this = $(this);
//other code
然后在回调函数中使用$ this变量提交表单
if(data == 'exist')
{
$('#email_id').val('');
$('#email_id').attr('placeholder', 'User already registered with this email');
$('#email_id').addClass('placeholder_red');
$('#email_id').focus();
}
else
{
$this.submit();
}
我还没有测试过你的代码,所以我无法确定它是否有效,但不同的时间对我有用。