Javascript 带有ajax错误消息的表单提交
我不熟悉ajax概念。在这里,我试图将用户详细信息(注册表单)插入数据库。它成功地将数据插入数据库。但是,ajax是我的问题 1) 如果表单字段为空,我没有收到任何错误消息。您可以看到我在post.php页面上验证的以下代码。但是,它不会返回错误值。2) 它将空值存储到数据库中。3) 如果数据存储成功,我希望获得成功消息&如果数据未能存储在db中,我希望获得错误消息。我该怎么做这些事情呢 Ajax.jsJavascript 带有ajax错误消息的表单提交,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我不熟悉ajax概念。在这里,我试图将用户详细信息(注册表单)插入数据库。它成功地将数据插入数据库。但是,ajax是我的问题 1) 如果表单字段为空,我没有收到任何错误消息。您可以看到我在post.php页面上验证的以下代码。但是,它不会返回错误值。2) 它将空值存储到数据库中。3) 如果数据存储成功,我希望获得成功消息&如果数据未能存储在db中,我希望获得错误消息。我该怎么做这些事情呢 Ajax.js $(function () { $('form').on('submit',
$(function () {
$('form').on('submit', function (e) {
$.ajax({
type: 'POST',
url: 'post.php',
data: $('form').serialize(),
success: function(msg) {
if(msg=='error_n')
{
$("#e_name").html('Name required');
}
if(msg=='error_m')
{
$("#e_mobile").html('Mobile required');
}
//success and error alert
if(data="inserted")
{
alert("insertion success");
}
else
{
alert("falid to insert into database");
}
}
});
e.preventDefault();
});
});
Post.php
<?php
include_once('config.php');
$name = trim($_POST["name"]);
$mobile = trim($_POST["mobile"]);
if($name == "")
{
echo 'error_n';
}
if($mobile == "")
{
echo 'error_m';
}
try
{
$stmt = $conn->prepare("INSERT INTO sample ( Name, Mobile ) VALUES ( ?, ? )");
$conn->errorInfo();
$stmt->bindParam('1', $name, PDO::PARAM_STR);
$stmt->bindParam('2', $mobile, PDO::PARAM_STR);
$stmt->execute();
}
catch(PDOException $e)
{
'Query failed to insert into database' .$e->getMEssage();
}
?>
<p>register <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">here</a></p>
<div id="light" class="white_content">
<a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Close</a>
<form>
<input type="hidden" name="form" value="values" />
name : <input name="name" id="name" type="text" /><span id="e_name"></span> <br />
mobile : <input name="mobile" id="mobile" type="text" /><span id="e_mobile"></span> <br />
<input type="submit" value="submit" />
</form>
</div>
<div id="fade" class="black_overlay"></div>
Homepage.php
<?php
include_once('config.php');
$name = trim($_POST["name"]);
$mobile = trim($_POST["mobile"]);
if($name == "")
{
echo 'error_n';
}
if($mobile == "")
{
echo 'error_m';
}
try
{
$stmt = $conn->prepare("INSERT INTO sample ( Name, Mobile ) VALUES ( ?, ? )");
$conn->errorInfo();
$stmt->bindParam('1', $name, PDO::PARAM_STR);
$stmt->bindParam('2', $mobile, PDO::PARAM_STR);
$stmt->execute();
}
catch(PDOException $e)
{
'Query failed to insert into database' .$e->getMEssage();
}
?>
<p>register <a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'">here</a></p>
<div id="light" class="white_content">
<a href = "javascript:void(0)" onclick = "document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Close</a>
<form>
<input type="hidden" name="form" value="values" />
name : <input name="name" id="name" type="text" /><span id="e_name"></span> <br />
mobile : <input name="mobile" id="mobile" type="text" /><span id="e_mobile"></span> <br />
<input type="submit" value="submit" />
</form>
</div>
<div id="fade" class="black_overlay"></div>
寄存器
名称:
手机:
返回错误消息后,需要停止脚本执行。当前代码仍尝试添加值,因此会覆盖自定义错误消息。很可能PHP会返回异常消息,而这不是JavaScript所期望的
if($name == "")
{
echo 'error_n';
die(); // Stop here
}
if($mobile == "")
{
echo 'error_m';
die(); // Stop here
}
还添加
echo“插入”代码>当数据库插入成功时 现在它不会将空值存储在db中。没关系。谢谢但是,在这里显示成功和失败消息是我的问题之一。我没有正确地得到成功和失败的信息。当将空字段提交到数据库中时,它总是警告“插入成功”。如果用户提交空数据,则应显示所需的值。但它没有…这种行为是不可能的代码。它应该返回error\n
,这将被javascript捕获。当您将某些内容留空时,您是否可以在firebug中检查PHP向JavaScript返回的值?