0

こんにちは、コードに問題があります。

ボタンをクリックせずにDBから直接取得したいテキストボックスにユーザーが書き込むと、テキストボックスがあります。

このテキストボックスに書き込むと、フォームの一部が完成します。

私のJSコード:

function centerIDfocus()
{
var id = document.getElementById("centerID").value;
var data = <?php $center_ID = echo mysql_num_rows(mysql_query("SELECT * FROM 'examcenter' WHERE 'id' = '".id."'"));  ?> ;

}
window.onload = addEventsToHTML;   

私の形で:

<input name="centerID" id="centerID"  onfocus="centerIDfocus();">   

それは機能していません!赤い顔

4

4 に答える 4

0

次のようなものを使用します。

$('.centerID').keyup(function(){
    var val = this.val();
    var url = '/do.php'; // url to a php script
    var val = 'action=checkValue&value='+val; // send it the value
    $.getJSON(url, val, function(data){
        // Something to do when you get the data back
    });
});

次に、データベースをチェックして JSON の回答を返す php スクリプトを作成し、好きなように処理します。

ところで-jQueryを使用しても大丈夫だと思います。これを JavaScript にも適用できます。

一例として keyup() を使用しましたが、これを keydown()、click()、focus()、focusout() などに適用できます...

action= の可能な値を持つ switch ステートメントを含み、JSON を返す do.php スクリプトがあります。ログイン、登録、アクティビティ モニターから、ページを離れることなくデータベース フィールドを更新するまでのすべて。

于 2013-05-28T23:54:01.947 に答える
0

PHP コードは、ページが読み込まれるときに 1 回だけ実行されます。その後は、サーバー側で何も起こらないため、再度実行されることはありません。フォーカスを取得するたびに実行したい場合は、AJAX を使用する必要があります。

AJAX の取得を見てください。それがあなたが望むものであると確信しています: http://api.jquery.com/jQuery.get/

于 2013-05-28T22:58:59.363 に答える
0

何を意図しているのかを知るのはかなり難しいですが...

私の推測では、物事がいつ発生し、いつ「onfocus」が起動されるかについて混乱していると思います。

ページの作成時にサーバー上で PHP が実行されます。対照的に、javascript は、構築されたページが到着した後 (オンロード)、またはユーザーのクリックや onfocus などの他のイベントに応答して、ブラウザーで実行されます。

したがって、JavaScript (ブラウザー内) が PHP (サーバー上) にドロップされる方法はありません。同じ理由 (およびセキュリティ) で、javascript がデータベースと直接対話することは不可能です。

あなたがやろうとしていること(私が思うに)をするために取るかもしれない2つのアプローチがあります。

PHP で JavaScript 配列を作成し、ID でインデックスを付け、考えられるすべての ID とそのデータを含めることができます。PHP を使用してデータベースを読み取り、javascript をエコーし​​て配列を定義します。これは、送信されるページの一部になります。次に、フィールドに入力する必要があることを意味するイベントに応答して、配列からデータを抽出し、必要な場所に配置します。これはページの読み込みに時間がかかりますが、変更をトリガーしたクリックへの応答は非常に高速です。

別の方法は、ajax を使用することです。最も簡単な方法は、jquery を使用して、ID に関連するデータを要求するサーバーに GET 要求を送信することです。サーバーは、ID を抽出し、データベースを読み取り、応答を生成することによって、その URL に応答する必要があります。JSON を使用することをお勧めします。その後、jquery リクエストが返されると、JavaScript コードはデータを JSON からフィールドに移動できます。これにより、最初のページが軽くなりますが、トリガー クリックまでのフェッチ遅延が発生します。

ただし、on-focus イベントにも問題があると思います。これは、ユーザーがデータを入力する前にカーソルをフィールドに移動したときに発生します。その時点で、HTML で設定されたデータが含まれます。その時点でIDを設定できれば、データベースからのデータにも設定できます。

ID 用と検索データ用の 2 つのフィールドが必要だと思います。次に、ID フィールドの onblur イベントで JavaScript を実行します。

それが役立つことを願っています。

于 2013-05-28T23:18:13.193 に答える
0

2 つの言語を混在させました。javascript はクライアント側で実行され、php はサーバー側で実行されます。あなたがする必要があるのは:

var data = function_to_get_data(); // in javascript

その関数で、phpスクリプトのアドレスへのajaxリクエストを呼び出します-そして、そのphpスクリプトでのみデータベースを呼び出して、目的のデータを返します

于 2013-05-28T22:55:00.863 に答える