1


0

serialize()関数によって読み取られていない形式があります。

+
+
function submitTrans1(){var formData = $( 'form1')。serialize(); var options = {method: 'post'、postBody: 'formData'、onCreate:function(){alert(formData)}、onSuccess:function(transport){alert( "onSuccess alert \ n" transport.responseText);}、 onComplete:function(){alert( 'complete');}、onFailure:function(){alert( '何か問題がありました...')}}

new Ajax.Request( '/ clients / addTrans / <?= $ clientID123?> /'、options); } uri-> segment(3); ?

説明日付

ファイル

Ajax.RequestのonSuccessパラメータに、シリアル化されたフォームに割り当てられた変数をアラートするのが理想的なアラートがあります。 しかし、それが警告するとき、それは何も警告しません。 念のために$ _POSTデータを出力する処理URLもありますが、その場合もresponseTextに空の配列が返されるため、実際には何もフォームに送信されません。

THX。

編集1

問題はフォームがdivの内側にあるという事実に関連しているようです。 フォームとjsを除いて、ページ上のすべてを削除しても問題ありません。 しかしフォームはデフォルトでは隠されているdivにあり、表示されるために別の関数を使用します。 divにある場合、シリアル化によってフォームデータを取得するのに必要なある種の魔法はありますか

'' '' '

編集2

引用符とポンド記号と他のすべてのジャズを加えようとしました。 私はWeb開発者のツールバー、Firebugなどを使っています…​ それはどんなjsエラーも投げず、何も恐れません。

3 Answer


0


postBodyフィールドの変数名formDataの周囲から引用符を削除してみてください。

FirefoxのWeb開発者ツールバーは、クライアントサイドのJavaScriptをデバッグするためのものと同じくらい便利です。

ところで、スニペットには、JS関数showTransAdd()、いくつかのPHP変数、PHP関数mdate()、およびプロトタイプライブラリのインクルードなど、いくつかの未定義の項目が含まれています。


0


この行を変更してください。

var formData = $( 'form1')。serialize();

これに:

var formData = $( '#form1')。serialize();

作業コピーを作成するには、他にもいくつか変更を加えなければなりませんでしたが、すべてのコードが何を控えていたのか、環境がどのように異なるのかについてはわかりません。 それでもうまくいかない場合は、私が使用した完全なコードスニペットをお送りします。


0


誤ったテーブルが壊れます。

私はtrやtdがない(最後の部分が重要かどうかわからない)テーブル内のフォームを持っていて、テーブルタグを削除すると、すべてがうまくいっています。

関連するjsは今のようになります:

var formData = $( 'form1')。serialize(); var options = {method: 'post'、postBody:formData、[...]

私はアカデミー、そして私を助けてくれたすべての人々に感謝します。