4

MySQL データベースから入力される可変サイズ (長さ) のフォームがあります。ボタンの作成に使用される情報を構成する 4 つのフィールドがあります (id、ボタン番号、名前、および価格)。フォームが送信されたら、すべての値を MySQl db に保存し、ページの下部にある div を成功メッセージで更新したいと考えています。他のすべてのページでは、次のようなものを使用しました...

xmlhttp.open("GET","myfile.php?a="+val1+"&b="+val2+"&c="+val3+"&d="+val4,true);
xmlhttp.send();

PHP ファイルはデータを保存し、div のメッセージを生成します。そしてdivに書き込む...

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

これは他のすべてのページでうまく機能しますが、フィールドがいくつあるかわからないため、xmlhttp.open ステートメントをハードコーディングすることはできません。

私はajaxとjQueryが初めてで、これを簡単に行う方法があるはずだと知っていますが、何も機能させることができませんでした. これが使えると言われました

$.each($('#yourform').serializeArray(), function() { console.log(" <" +this.name+ '>' + this.value + "</" + this.name + "> " ); });

各フォーム要素を出力しますが、この情報を PHP ファイルに取得する方法と、div の戻りメッセージを生成する方法がわかりません。繰り返しになりますが、私は ajax と jquery を初めて使用するので、説明を得ることができれば、これを理解するのに大いに役立つと確信しています。

4

3 に答える 3

1

お役に立てれば:

$('form').submit(function() {
    $.post("myfile.php", $(this).serialize(), function(response) {
        console.log(response);
    });
});
于 2012-12-20T14:47:44.577 に答える
1

このようなものはどうですか?http://jsfiddle.net/r0k3t/e6W3Z/ご覧のとおり、任意の数のフィールドを追加でき、それらはすべて qString にダンプされます。

$('#yourform').submit(function() {
    var qString = "";
    $('#yourform input[type=text]').each(function() {
       qString += $(this).attr("id") + "=" + $(this).val() + "?";
    });
    console.log(qString);
    return false;
});

あなたの質問から、ボタンの値を他の場所で取得できるため、ボタンの値を取得できるようです。クエリ文字列に満足したら、Joe Brown が提案したように .post を使用できます。

于 2012-12-20T15:03:33.233 に答える
0

POSTリクエストでサーバーに送信されるa00からa99、b00からb99などの変数名を割り当てることができます。次に、サーバー側で設定されている値を確認し、それに応じて処理します。

少し粗雑ですが、うまくいくはずです。

于 2012-12-20T14:50:09.107 に答える