我正在使用JavaScript来验证我的表单。这是基本的验证。我有问题,它发送synum变量通过张贴从Java脚本到我的PHP页面valid_synum.php在那里我做一个pdo查找检查如果该synum存在或不,然后我回声一个1或0基于结果。我希望Java脚本能够获得该结果并发送警报错误,或者如果确定允许表单提交。这里是我有的JavaScript。至于我可以告诉POST调用发送一个变量从JavaScript到PHP被检查并返回到javascript
$。员额( “valid_synum.php”。{synum:synum},
永远不会叫了起来,我把一个测试的PHP页面并且测试永远不会从脚本启动,如果我直接在浏览器加载PHP它工作正常
任何帮助,将不胜感激
<script>
function isNumber(input)
{
return (input - 0) == input && (input+'').replace(/^\s+|\s+$/g, "").length > 0;
}
function checkForm(f)
{
if (f.elements['worknum'].value != "")
{
if ((isNumber(f.elements['worknum'].value)) == false)
{
alert("The Work Order Number is not valid")
return false;
}
var chars = 6;
if((f.elements['worknum'].value).length != 6)
{
alert("The Work Order Number is not 6 digits")
return false;
}
}
if (f.elements['synum'].value == "")
{
alert("Please Enter the Store Number");
return false;
}
if (f.elements['worknum'].value == "")
{
alert("Please Enter the Work Order Number");
return false;
}
if (f.elements['synum'].value != "")
{
//get the username
var synum = (f.elements['synum'].value);
$.post("valid_synum.php", { synum: synum },
function(result){
//if the result is 1
if(result == 1){
//do nothing valid synum
alert("Good")
return false;
}else{
//show that the username is NOT available
alert("The store number is NOT valid. Please Enter full store number")
return false;
}
});
}
else
{
f.submit();
return false;
}
}
</script>
这里是我的PHP页面代码:。。。
$id=$_POST['synum'];
try{
$conn = new PDO("sqlsrv:Server= $eautoserver ; Database = $eautodb ", $eautouser, $eautopwd);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT * FROM vw_DCR_Web_Customer_Query WHERE CustomerNumber= :id');
$stmt->execute(array('id' => $id));
$row = $stmt->fetch();
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
if ($row){
echo 1;
$email_body="1";
}else{
echo 0;
$email_body="0";
}
如果您在.post之前放置了警报,它是否显示警报?意思是,它甚至可以获得邮政编码吗? – user1048676 2013-04-04 18:39:18
是的,如果我确实警觉(synum);就在$ .post之前,它会显示我输入的内容。所有其他错误检查,Java脚本工作正常。只是这一块似乎并没有激活。我在php上放置了代码来发送电子邮件,只是为了测试页面是否被访问,而不是。 – 2013-04-04 18:53:22
控制台中有任何错误吗? – user1048676 2013-04-04 18:58:11