【发布时间】:2012-09-10 12:43:48
【问题描述】:
我在同一页面中使用带有日期选择器的验证引擎。
我添加了一个jQuery.noConflict(); 以使其工作(在代码的开头)。
现在,我需要通过 PHP 文件进行插入,但无需刷新页面,而是在同一验证引擎气泡中显示错误消息(例如,当电子邮件已在 BDD 中注册时)。
我应该导入 jQuery 以在同一页面中插入 不会引起冲突,或者我可以在已经使用的查询上使用一个吗 出于同样的目的?
如何通过验证引擎显示服务器响应?
我的代码如下。
$(".btn_newsletter").live('click', function() {
$.ajax(
{
url: "php/functions/signin.php"+nomfichier,
success: function(data) {
if (data.check==0) {alert('Error : Sorry '); return false;}
if (data.check==1) {alert('yep!!!');
}
},
cache: false,
type: "POST",
dataType: 'json'
});
}
这是我的 PHP 代码。
$ip= $_SERVER["REMOTE_ADDR"];
$select = "select * from av_newsletter where email='".$_POST['email']."'";
$exist = $_BASE->query_array($select);
if ($exist) {
$check = "0";
}
else {
$ajout="INSERT INTO av_newsletter(id,sub_date,email,ip) VALUES (NULL,now(),'$email','$ip')";
$add=$_BASE->query($ajout);
if ($add) {
$check="1";
}
}
$return_arr["check"] = $check;
echo json_encode($return_arr);
它不起作用;我没有警报,但也没有错误。
【问题讨论】:
-
列出您希望表单执行的所有操作的优先级列表,例如用户名、电子邮件等已被占用。创建一个 PHP 脚本来验证这一点(检查数据库)并返回一个 JSON 响应,如 {'username':'free', 'email':'taken'},在您的表单中处理它以获取通知。
-
非常感谢,我已经添加了上面的代码,不起作用我没有警报,但也没有错误:/
-
在第一个 if(data.check==0) 之前放一个 console.log(data),我相信 0 将是一个字符串“0”。也可以使用firefox中的firebug之类的工具来查看结果,而无需一直调试javascript文件中的响应
-
仍然没有结果,没有错误,(也没有插入):/我认为不包含signin.php答案的变量数据有问题,我不明白为什么:/再次感谢。控制台.日志(数据); if(data.check=='0'){ alert('错误:对不起');返回假; } if(data.check=='1'){ alert('yep!!!'); }
-
您应该在控制台中看到一些响应,可能是因为您没有使用任何控制台;) 将 console.log(data) 更改为 alert(data);还要在 $.ajax 之前添加一个 alert('testing1234') 来查看点击获取是否被执行
标签: php jquery jquery-validation-engine