0

ユーザー名が既に存在するかどうかを確認する必要がある「ユーザーの作成」フォームがあります。そのために、このスクリプトを開始するボタンに onclick 関数を作成しました。

$.ajax({
type: \"POST\",
dataType: \"json\",
url: \"test.php\",
data: $('input[name=Username]').val(),
contentType: \"application/json; charset=utf-8\",
success: function(data){
alert('Items added');
},
error: function(e){
console.log(e.message);
}
});

ただし、成功を示すアラートでさえ、何も起こりません! その単一の変数を投稿する方法と、ユーザー名の存在を確認する PHP ページから結果を取得する方法を教えてください。

4

3 に答える 3

2

次のように、dataキーvalueにはオブジェクトである が必要です。

data: {username: $('input[name=Username]').val())},

このようにして、POST 値usernameが作成されます。

于 2013-02-27T16:34:28.863 に答える
2
  1. JS のランダムなビットをエスケープしないでください。\sを取り除く
  2. 単一の生の文字列を送信するだけでなく、標準フォームの MIME タイプを使用してフォーマットすると、送信されたデータを処理するのがはるかに簡単になります。data: { keyName: $('input[name=Username]').val() }
  3. JSON テキストを送信していません。を取り除きcontentType: etc etcます。(そのままにしておくと、PHP が「これはフォーム データではありません。入力できません」というエラーが発生する可能性があります$_POST)。送信する content-type は jQuery に決定させます。

$_POST['keyName']次に、PHPでアクセスできます。

于 2013-02-27T16:35:27.363 に答える
1

$_POST呼び出しで参照できるアイテムに変数を割り当てる必要があります。

$.ajax({
    type: "POST",
    url: "test.php",
    data: {user:$('input[name=Username]').val()},
    success: function(data){
        alert('Items added');
    },
    error: function(e){
        console.log(e.message);
    }
});

次に、test.phpを取得します$_POST['user']

編集 - contentType を削除しました (Rocket に感謝)。また、ヘッダーを適切に設定した場合は必要ないため、dataType も削除しましたtest.php

header('Content-type: application/json');
于 2013-02-27T16:35:02.797 に答える