我有一个注册表单,其中我有三个字段
用户名,密码和电子邮件地址
这三个字段将存储在表A中。当用户立即输入电子邮件地址时,我想检查表B(不是我在提交时检查的表A),以确定该电子邮件地址的可用性。如果表B中有该电子邮件地址,那么我想从表B中获取相应电子邮件地址的ID,并将该ID插入电子邮件下方的隐藏字段中,当用户点击提交时,该字段将与所有字段一起提交。请告诉如何做
答案 0 :(得分:0)
你需要的是一些简单的AJAX魔法,如果你还没有在你的代码中使用它,帮自己一个忙,抓住jQuery http://www.jquery.com并做这样的事情
<script>
$("#email").change(function(e) {
$.post("checkemail.php", { email: $(this).val() }, function(data) {
if(data.available == "false") {
$("#hidden_field_id").val(data.id);
}
}, "json");
});
</script>
这将使用POST检查你的checkemail.php脚本(每次确保正确刷新返回数据,与GET不同)当某人点击或标记离开该字段并且javascript看到内容已更改时(所以它每次在表单生命周期内内容不同时才触发一次
你的checkemail.php
$return = array("available"=>"true", "id"=>"");
$sql = mysql_query("select id from tableB where email='".trim($_POST['email'])."'");
if(mysql_num_rows($sql) > 0) {
$return['available'] = "false";
$r = mysql_fetch_object($sql);
$return['id'] = $r->id;
}
echo json_encode($return);
这是一个非常基本的函数,可以ping你的数据库,如果找到它,它将获取与该电子邮件相关的id(无论该字段恰好在你的数据库中)并将其放入我们的返回数组中。 一旦完成所有操作,它将回显出JSON编码的数组,以便与Javascript一起使用(这就是为什么在您的脚本中,有一个“json”参数,因此数据被解析并准备好在完成ajax调用时使用)。如果它发现电子邮件不可用,它将获取json对象中存储的id号,并将其作为您用于存储返回的id的表单中指定的隐藏字段的值。
希望有所帮助!