Jquery Ajax对PHP电子邮件验证程序的POST请求-如何获取电子邮件输入值?
我正在我的Joomla/Virtuemart网站的结帐页面上创建Ajax电子邮件验证 此电子邮件验证程序必须检查键入的电子邮件地址是否已存在于数据库中,并显示实时消息 我几乎已经完成了这个脚本,但是Ajax代码发送的POST数据似乎没有正确地传输到我的PHP脚本中 以下是我的jQuery脚本:Jquery Ajax对PHP电子邮件验证程序的POST请求-如何获取电子邮件输入值?,jquery,ajax,forms,validation,virtuemart,Jquery,Ajax,Forms,Validation,Virtuemart,我正在我的Joomla/Virtuemart网站的结帐页面上创建Ajax电子邮件验证 此电子邮件验证程序必须检查键入的电子邮件地址是否已存在于数据库中,并显示实时消息 我几乎已经完成了这个脚本,但是Ajax代码发送的POST数据似乎没有正确地传输到我的PHP脚本中 以下是我的jQuery脚本: jQuery(document).ready(function(){ jQuery('#confirmbtn_button').attr('disabled',''); var email
jQuery(document).ready(function(){
jQuery('#confirmbtn_button').attr('disabled','');
var emailok = false;
var myForm = jQuery("#adminForm"), email = jQuery("#email_field"), emailInfo = jQuery("#emailInfo");
var emaildata = jQuery('#email_field').val();
//send ajax request to check email
email.blur(function(){
jQuery.ajax({
type: "POST",
data: {fmail:emaildata},
url: "/CustomCodes/js/check.php",
beforeSend: function(){
emailInfo.html("<font color='blue'>Undersøger Email...</font>");
},
success: function(data){
if(data == "invalid")
{
emailok = false;
emailInfo.html("<font color='red'>Ugyldig Email</font>");
}
else if(data != "0")
{
emailok = false;
emailInfo.html("<font color='red'>Email Eksisterer Allerede..</font>");
}
else
{
emailok = true;
emailInfo.html("<font color='green'>Email OK</font>");
}
}
});
});
});
jQuery(文档).ready(函数(){
jQuery(“#确认按钮”).attr('disabled',”;
var emailok=false;
var myForm=jQuery(“#adminForm”),email=jQuery(“#email_字段”),emailInfo=jQuery(#emailInfo”);
var emaildata=jQuery(“#email_字段”).val();
//发送ajax请求以检查电子邮件
email.blur(函数(){
jQuery.ajax({
类型:“POST”,
数据:{fmail:emaildata},
url:“/CustomCodes/js/check.php”,
beforeSend:function(){
emailInfo.html(“Undersøger电子邮件…”);
},
成功:功能(数据){
如果(数据==“无效”)
{
emailok=false;
emailInfo.html(“Ugyldig电子邮件”);
}
否则如果(数据!=“0”)
{
emailok=false;
emailInfo.html(“Email Eksisterer Allerede..”;
}
其他的
{
emailok=true;
emailInfo.html(“电子邮件确认”);
}
}
});
});
});
这是我的PHP验证脚本:
<?php
$email = $_POST['fmail'];
//data connection file
//require "config.php";
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', $_SERVER[ 'DOCUMENT_ROOT' ] );
require_once( JPATH_BASE . DS . 'includes' . DS . 'defines.php' );
require_once( JPATH_BASE . DS . 'includes' . DS . 'framework.php' );
require_once( JPATH_BASE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php' );
$mainframe =& JFactory::getApplication('site');
$ftpSERVERURL = JPATH_BASE;
$MainsiteURL = "http://" . $_SERVER['HTTP_HOST'];
// Load configuration
$conf =& JFactory::getConfig();
require_once( JPATH_BASE .DS.'configuration.php' );
$config = new JConfig();
$conf->loadObject($config);
$host = $conf->getValue('config.host');
$user = $conf->getValue('config.user');
$password = $conf->getValue('config.password');
$database = $conf->getValue('config.db');
// Connects to your Database
mysql_connect($host, $user, $password) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
{
$sql = "select * from jos_users where email='$email'";
$rsd = mysql_query($sql);
$msg = mysql_num_rows($rsd); //returns 0 if not already exist
}
else
{
$msg = "invalid";
}
echo $msg;
?>
感谢Dru为我指明了正确的方向,我找到了如何更改jQuery代码以使其正常工作的方法。
以下是更新后的jQuery:
jQuery(document).ready(function(){
//jQuery('#confirmbtn_button').attr('disabled','');
var emailok = false;
var myForm = jQuery("#adminForm"), email = jQuery("#email_field"), emailInfo = jQuery("#emailInfo");
//send ajax request to check email
email.blur(function(){
var emaildata = jQuery('#email_field').val();
jQuery.ajax({
type: "POST",
data: {fmail:emaildata},
url: "/CustomCodes/js/check.php",
beforeSend: function(){
emailInfo.html("");
},
success: function(data){
if(data == "invalid")
{
emailok = false;
emailInfo.html('<div class="invalid" style="width: 292px;color: #F00;position: relative;top: -12px;margin-bottom: -14px;left: 10px;">Den indtastede Email: "'+ emaildata + '" - er ugyldig!!!</div>');
jQuery('#email_field').val('');
}
else if(data != "0")
{
emailok = false;
emailInfo.html("<div class='alreadyexist' style='width: 292px;color: #F00;position: relative;top: -12px;margin-bottom: -14px;left: 10px;'>Email: "+ emaildata + ", findes allerede i systemet. Log ind ovenfor.</div>");
jQuery('#email_field').val('');
}
/*
else
{
emailok = true;
emailInfo.html("<font color='green'>Email OK.</font>");
}
*/
}
});
});
});
jQuery(文档).ready(函数(){
//jQuery(“#确认按钮”).attr('disabled',”;
var emailok=false;
var myForm=jQuery(“#adminForm”),email=jQuery(“#email_字段”),emailInfo=jQuery(#emailInfo”);
//发送ajax请求以检查电子邮件
email.blur(函数(){
var emaildata=jQuery(“#email_字段”).val();
jQuery.ajax({
类型:“POST”,
数据:{fmail:emaildata},
url:“/CustomCodes/js/check.php”,
beforeSend:function(){
emailInfo.html(“”);
},
成功:功能(数据){
如果(数据==“无效”)
{
emailok=false;
emailInfo.html('Den indtastede Email:'+emaildata+'-er ugyldig!!!');
jQuery(“#email_字段”).val(“”);
}
否则如果(数据!=“0”)
{
emailok=false;
emailInfo.html(“电子邮件:“+emaildata+”,findes allerede i systemet.Log ind ovenfor”);
jQuery(“#email_字段”).val(“”);
}
/*
其他的
{
emailok=true;
emailInfo.html(“Email OK”);
}
*/
}
});
});
});
如您所见,我只需移动“var emaildata=jQuery('#email_字段').val()”,将其放在“email.blur(function(){)”之后,现在我可以通过调用“$email=$_POST['fmail']”检索PHP脚本(check.PHP)中的数据。有什么错误/问题?另外,emaildata=jQuery('#email_字段').val();应该在blur函数中,在ajax调用之前,具体的问题是我无法弄清楚如何通过POST将电子邮件输入字段(ID“email_字段”)的值正确地传输到PHP脚本“check.PHP”中。那么,你是说如果我在“email.blur(function(){”then“data:”之后添加“emaildata=jQuery('#email_字段').val()”,那么:{fmail:emaildata}“将通过POST传输电子邮件输入,以便我可以在PHP脚本中使用“$email=$\u POST['fmail'];”调用该值?
jQuery(document).ready(function(){
//jQuery('#confirmbtn_button').attr('disabled','');
var emailok = false;
var myForm = jQuery("#adminForm"), email = jQuery("#email_field"), emailInfo = jQuery("#emailInfo");
//send ajax request to check email
email.blur(function(){
var emaildata = jQuery('#email_field').val();
jQuery.ajax({
type: "POST",
data: {fmail:emaildata},
url: "/CustomCodes/js/check.php",
beforeSend: function(){
emailInfo.html("");
},
success: function(data){
if(data == "invalid")
{
emailok = false;
emailInfo.html('<div class="invalid" style="width: 292px;color: #F00;position: relative;top: -12px;margin-bottom: -14px;left: 10px;">Den indtastede Email: "'+ emaildata + '" - er ugyldig!!!</div>');
jQuery('#email_field').val('');
}
else if(data != "0")
{
emailok = false;
emailInfo.html("<div class='alreadyexist' style='width: 292px;color: #F00;position: relative;top: -12px;margin-bottom: -14px;left: 10px;'>Email: "+ emaildata + ", findes allerede i systemet. Log ind ovenfor.</div>");
jQuery('#email_field').val('');
}
/*
else
{
emailok = true;
emailInfo.html("<font color='green'>Email OK.</font>");
}
*/
}
});
});
});