0

私は、すべての入力要素(および一部の仕切り)からすべての値を取得し、それらをすでに準備された送信関数を使用してPHPファイルにすばやく送信する非常に簡単な方法を探しています。

私は非常に大雑把な解決策を思いつきましたが、それは大幅に最適化する必要があります。

今のところ、送信ボタンをクリックすると、関数が呼び出されます

function $('#submit').click(function(){

var $divValues = new Array();
$divValues[0] = $('#divName').html();
$divtValues[1] = $('#divImgName').html();

var $values;
$values = $(':input').serializeArray();

$fileName = "php.php?firstVal=\""+$divValues[0]+"\"&secondVal=\""+$divtValues[1]+"\"&thirdVal=\""+$values['firstValName']+"\"&ect..." 

//then i simply call the ajax function which will send the information to the php file
fetch($fileName);    
});

連想配列の値の名前とphpファイルで取得した変数の名前が一致するという事実を使用できます。ファイル名を設定する代わりに、この例では3番目..."&thirdVal=\"" ...の値になる名前を使用し ます($values['firstValName']私はそれを行う方法がわかりませんが)

または多分私がしようとしていることを達成するためのさらに簡単な方法があります。このコードをうまく実装する方法について何かアイデアはありますか?

アップデート:

今のところ、HTMLにフォーム要素はありませんが、コードを単純化するためにフォーム要素が必要なソリューションを見つけたらすぐに追加できます... serialize()関数を使用できることはわかっていますが、質問は返される配列を処理するための良い方法について。$fileName(または、2つの配列を使用します。1つは他の名前で値または2次元配列を使用します)どちらの方法でも、データの取得とPHPファイルの正しい値の作成の両方の簡単な方法を確認したいと思います。

すべての値を使用してfileNameを作成する簡単な方法を示す回答のコードまたは擬似コードをいただければ幸いです。

誰かが私が何を求めているのか理解していないか、説明が必要な場合は、下にコメントを投稿してください。そうすれば、私は自分自身を明確にすることができます。

4

1 に答える 1

3

jQueryを使用しているので、フォーム全体にserialize()を適用してAJAXメソッドを使用できます。ここをクリックすると、それに関するドキュメントを読むことができます。また、ここをクリックして、ここをクリックしてjQueryのAJAXメソッドに関するドキュメントを読むことができます

あなたの要求に応えて、これは本当に簡単な例です:

$.post("test.php", $("#testform").serialize());

$.postまたは$.get関数の使用方法について必要な残りの部分は、私が参照したドキュメントから実際に入手できます。

Serializeは、すべての変数のurlencodingも処理するため、心配する必要はありません。

編集:

フォームを用意する必要はありません。上記のserializeArray()でやろうとしていることを実行できますが、(a)$(':input')は何も選択せず、(b)serializeArray()ではなくserialize()を使用する必要があります。したがって、フォームがない場合、コードは次のようになります。

$.post("test.php", $("input,select,textarea").serialize());

これにより、データが正しくエンコードされたスクリプトが適切に要求され、$。postまたは$ .getのどちらを使用してスクリプトを要求したかに応じて、$_POSTまたは$_GETからPHPスクリプトで読み取ることができます。

于 2012-07-09T00:32:53.210 に答える