0

同じページで、日付ピッカーを備えた検証エンジンを使用しています。

私はそれを機能jQuery.noConflict();させるために (コードの先頭に) を追加しました。

ここで、PHP ファイルを介して挿入を行う必要がありますが、ページを更新せずに、validationEngine の同じバブルにエラー メッセージを表示します (たとえば、電子メールが BDD に既に登録されている場合)。

  1. 競合を引き起こさずに同じページに挿入するためにjQueryをインポートする必要がありますか、それとも同じ目的ですでに使用されているクエリで使用できますか?

  2. validationEngine を介してサーバーの応答を表示するにはどうすればよいですか?

私のコードは次のとおりです。

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

「Validationengine」に深く縛られていない場合は、これを使用することをお勧めします。これは何年もの間私に役立ってきました。リモートチェックをサポートしているため、次のようなことができます。

$(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 に答える
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 に答える
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 に答える