0

私はMagentoの初心者で、電子メールフィールドを検証する必要があるQuickCheckoutフォームを使用しています。

ユーザーがフィールドに電子メールを入力すると、データベース(テーブルcustomer_entity)で電子メールを更新せずに動的に検索する必要があります

正規表現を使用して電子メールの書き込みを検証するために機能するAjax.Requestを使用するコードがあります

function validar_email() { 
  local = "billing";

  var urlAjax = location.href;
  var validarUrl = /^https:\/\//;

  if ( urlAjax.match( validarUrl ) ) {
    urlAjax = '<?php echo Mage::getBaseUrl("link", true)."ajaxend/ajax" ?>';
  } else {
    urlAjax = '<?php echo $this->getUrl("ajaxend/ajax") ?>';
  }

  new Ajax.Request( urlAjax, {method: 'POST',
                parameters: 'email='+$(local+':email').value,
                evalScripts: true,
                onLoading: function(transport) {

                 $('load-email-'+local).innerHTML = 'Verificando E-mail';
                },
                onSuccess: function(transport) {

                                    var emailReg = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
                            var emailValido = 'E-mail Válido';
                            var emailInvalido = 'E-mail Inválido, digite outro';
                            if( !emailReg.test($(local+':email').value)){
                                $('load-email-'+local).innerHTML = emailInvalido;
                            } else {
                                $('load-email-'+local).innerHTML = emailValido;
                            }

                },
                onComplete: function(transport) {

                },


                onFailure: function() { /*document.getElementById("...").innerHTML = 'problemas...';*/ }


              });
}

データベースで検索する2つのコードを作成しました:コード1:

$email = $_POST['email'];
$resource = Mage::getSingleton('core/resource');


    $readConnection = $resource->getConnection('core_read');

    $table = $resource->getTableName('customer_entity');

    $query = 'SELECT email FROM ' . $table . ' WHERE email = "'.$email.'";';

    $sku = $readConnection->fetchAll($query);

コード2(PHPのみ):

$queryVerifEmail = '';
$queryVerifEmail .= ' SELECT email FROM customer_entity';
$queryVerifEmail .= ' WHERE email = "'.$email.'";';

$result = mysql_query($queryVerifEmail);
if(mysql_num_rows($result) > 1){
  echo $email.' já existe na base!'; } else{ echo $email.'valido'; }

行に参照されたphpファイルを作成しようとしました

new Ajax.Request( "getEmail.php?", {method: 'GET',

そして何も機能しませんが、Ajax.RequestはMagentoで更新せずに機能する入力を作成する唯一の方法です

私はあなたが知っている最高のソリューションを手に入れたいのですが、そのための新しいモジュールを購入したりインストールしたりしたくはありません。Ajax、JQuery、またはPHPのコードソリューションが必要です。

4

1 に答える 1

0

jQueryオートコンプリートを使用してこのタスクを実行できます ajaxリクエストから、データベースからデータを取得し、json配列に変換して提案を表示できます

http://jqueryui.com/demos/autocomplete/

于 2012-07-13T06:13:23.503 に答える