1

さて、基本的に私がしようとしているのは、テキスト ボックスの値 (ほとんどの場合、オートコンプリートされます) を使用して、データベースから取得したデータを別のテキスト ボックスに入力することです。

ユーザーは 1 つのボックスに名前を入力し、その入力がフォーカスを失うと、2 つ目のボックスに名前に関連付けられた電子メール アドレスが自動的に入力されます。

私が望むものに似ているが、選択に対してのみ機能するいくつかの異なるjQueryプラグインを見てきました(名前が追加される新しいものになる可能性があるため、これは望ましくありません)。

誰かが次のように言うことは知っています。答え: 名前はその場で追加されるためです (新しい注文を追加するときの注文追跡ソフトウェアの行に沿って考えてください)。

私は PHP、MySQL、そしてもちろん jQuery を使用しています。

前もって感謝します。

4

3 に答える 3

3

これを行うためのプラグインは必要ありません。blurイベントで$.postを呼び出すだけです。

$("#name").blur(function () {
    $.post(your_php_file, { name: $(this).val() }, function (data) {
        $("#email").val(data);
    });
});

あなたのphpファイルでは、名前を取得$_POST["name"]し、JavaScriptにメールを送り返すことができます。エコーするだけです。

文字列だけでなくより多くのデータをロードする必要がある場合は、json_encode()を使用して配列をエンコードする必要があります

$name = $_POST["name"];
//pick data from db
$arr = array("email"=>$email, "otherstuff"=>$otherstuff);
echo json_encode($arr);

そして、あなたのポストコールをこれに変更してください:

$.post(your_php_file, { name: $(this).val() }, function (data) {
    $("#email").val(data.email);
    $("#otherstuff").val(data.otherstuff);
});
于 2010-07-11T03:28:01.087 に答える
2

あなたはこのようなことをすることができます...

$('#input_1').blur(function(){ // blur event, when the input box loses focus...
   var data = this.value;     // get the data of the this inputbox, in our case id="input_1"
   $.ajax({
       url: 'some/url.php', // your php that is used to query MySql
       method: 'get',       // method to be used , get/post
       data: {
           'foo' : data // the data to be passed, e.g. ?foo=data
       }
       success : function(msg){   // when connection to server is successful, msg is the data returned from 'some/url.php'
           $('#input_2').val(msg); // populate the second inputbox with msg... 
       }
   });
});

$_GET['foo']上記のjQueryのコードから、phpで行うことができます...そしてecho、2番目の入力ボックスに必要なデータを取得する必要があります....

于 2010-07-11T02:55:21.357 に答える
1

クライアント側は次のようになります。

$('#name').blur(function(){
  str = $('#name').val()
  $.get("lookupemail.php", { name: str}, function(data){
    $('#email').val( data );
  });      
});

「名前」フィールドがフォーカスを失ったら、パラメータ「名前」を「名前」フィールドに設定して、lookupemail.php にリクエストを送信します。リクエストが返ってきたら、「email」フィールドに入力してください。

于 2010-07-11T02:47:14.960 に答える