0

しばらく作業しているWebアプリケーションが1つあります。AJAX手法を使用してHTTPPOSTリクエストを使用してデータを送信しています。

私は次のようなJavaScriptを使用しています:

var rdate=document.getElementById('rdate').value;
var Description=document.getElementById('description').value; 
var urlstring="rdate="+rdate+"&Description="+Description;

oxhr.open("POST","http://localhost/info/php/store.php",false); 
//checking for ready state change here

oxhr.send(urlstring);

しかし、データベースではすべてが空白になっています(データはありませんが行が作成されています)urlstringに変数を含めるべきではありませんか?または、JavaScriptで起こりうる間違いは何でしょうか。

どんな助けでも大歓迎です。

4

1 に答える 1

1

解決策(人は物理的ではないため、問題を見つけるため): Firebug / Fiddler2 / IE Developer Toolsなどのツールを使用して、実際に何が送信されたか、または要求が行われたかどうかを確認します。

以下が答えであるとは言いませんが、上記の投稿での手動の文字列構築は...苦痛であり、あまり堅牢ではありません。ここに少し便利な関数があります:

function encodeParams(params) {      
    var components = []
    for (var k in params) {
        if (params.hasOwnProperty(k)) {
            var v = params[k]
            components.push(encodeURIComponent(k) + "=" + encodeURIComponent(v))
        }
    }
    return components.join("&")
}

使用:

var queryString = encodeParams({
    admin_id: 1,
    rdate: rdate,
    Description: description
})

これにより、コンポーネントが正しくエンコードされるため、クエリ文字列が破損することもありません。

ハッピーコーディング。

于 2012-06-29T18:31:11.803 に答える