0

我在同一页面中使用带有日期选择器的验证引擎。

我添加了一个jQuery.noConflict();使其工作(在代码的开头)。

现在,我需要通过 PHP 文件进行插入,但无需刷新页面,并在同一验证引擎气泡中显示错误消息(例如,当电子邮件已在 BDD 中注册时)。

  1. 我应该导入 jQuery 以在同一页面中插入而不引起冲突,还是可以在已经用于相同目的的查询中使用一个?

  2. 如何通过验证引擎显示服务器响应?

我的代码如下。

$(".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);

它不起作用;我没有警报,但也没有错误。

4

3 回答 3

1

好的,在我们发送垃圾评论并偏离主题之前,请执行此代码,这应该可以帮助您开始使其最终工作。

$(".btn_newsletter").live('click',function() {
  alert('clicked'); // click is executed
  $.ajax({                           
    url: "php/functions/signin.php"+nomfichier,
    success: function(data) {
      alert(data); // should alert the data
      if(data.check==0){  alert('Error : Sorry '); return false; }
      if(data.check==1){  alert('yep!!!'); }                                                                    
    },
    error: function(request, status, error) {
      alert('failed '+status);
    },
    cache: false,
    type: "POST",
    dataType: 'json'
  });
});
于 2012-09-10T14:44:33.080 回答
1

如果您与您的“验证引擎”没有太深的联系,我建议您使用这个,多年来一直为我服务,它支持进行远程检查,因此您可以执行以下操作:

$(document).ready(function(){

var save_options = {
    success:        userSaved, //callback function
    url:           '/users/save',
    response:      'json',
    method:        'post'
};

var validationObj = {
    rules: {
        name: "required",
        email: {
        email: true,
            required: true,
            remote: "/user/check_email/"
        }
    },
    messages: {
        name: "Please name yourself",
        email: {
            required: "Please enter your email address",
            email: "Invalid email address",
            remote: "Email already in use."
        }
    },
    errorPlacement:function(error, element) {
        error.appendTo( element.next() );
    },
    submitHandler:  function(form) {
        $(form).ajaxSubmit(save_options);
    },
    success:function(label) {
        label.html(" ").addClass("checked");
    }
};

});

然后在“/users/check_email”端点的 PHP 端,PHP 执行以下操作:

echo $emailExists ? json_encode(false) : json_encode(true);
于 2012-09-10T13:29:16.967 回答
0

有用 :)

    $(".btn_newsletter").live('click',function() {
              var data ="email="+$('#email').val();

  $.ajax({                           
    url: "php/functions/signin.php"+"?"+data,
    success: function(data) {   
          if(data.check=='1'){  alert('yep!!!'); }                                                                    
          if(data.check=='0'){  alert('Error : Sorry '); return false; }
    },
    cache: false,
    type: "POST",
    dataType: 'json'
  });
});

在我的 signin.php 中,我捕获了这样的输入值,$email=$_REQUEST['email'] 非常感谢!是时候让我了解一下验证引擎如何将其与 :) 联系起来了

于 2012-09-10T20:01:48.567 回答