2011-01-20 6 views
1

私は、モーダルダイアログ上に記入する必要があり、結果をデータベースに保存するために「保存」を押すとフォームを作成しました。次のコードを使用して、jQuery-UIダイアログとjQuery .post()メソッドであるフォームを開きます。フォームを閉じて処理するときに何も表示する必要はありません。jQuery .dialog()+ .post()problem

$('#cdialog').dialog({ 
    autoOpen: false, 
    modal: true, 
    buttons: { 
     "Save": function() { 
       $.post('process.php', $("#cform").serialize()); 
       $(this).dialog('close'); 
      }, 
     Cancel: function() {      
       $(this).dialog('close'); 
      } 
     } 
    }); 
$('#cdialog').dialog('open'); 

これは、私はパラメータが実際に渡される "保存" 機能でalert($("#testform").serialize())で確認process.php

$data = (object)array(
    'map' => $_POST['map'], 
    'type' => $_POST['type'], 
    'name' => $_POST['name'] 
); 

Concepts::save($data); 

内のコードです。 POSTリクエストが送信されていることをApacheログで確認しました。しかし、それはまだ動作していません。 $ _POST変数を取得せずに配列内のすべてのパラメータを渡すだけのPHPファイルを実行すると、データが保存されます。私はなぜそれがダイアログから動作していないのかわかりません...

+0

@Jullを反映するために

"Save": function() { $.post('process.php', $("#cform").serialize()); $(this).dialog('close'); } 

からあなたのコードを変更してください - あなたは、Apacheからの出力を貼り付けることはできますか? PHP配列の内容を出力するとどうなりますか? – jmort253

+0

Apacheの出力127.0.0.1 - [20/Jan/2011:15:33:21 +1300] "POST/concept/process.php HTTP/1.1" 200 3472 print_rを使って配列を出力しようとしました($ data )、運がない。それはprocess.phpがまったくアクセスされていないようです... – Jull

+0

配列をオブジェクトにキャストするのは普通ですか?配列をデータに直接代入すれば、print/echoステートメントで何を得ることができますか? – jmort253

答えて

0

私はあなたがタイミングの問題を抱えていると信じています。次

"Save": function() { 
      $.post('process.php', $("#cform").serialize(), function() { 
        $('#cdialog').dialog('close'); 
      }); 

     } 
+0

私はこれを試しました。すべてが以前とまったく同じように機能し、データを処理しません。 – Jull

+0

これはばかげた質問かもしれませんが、ブラウザのキャッシュをクリアしてから試しましたか? – Lance

+0

いいえ、私はしませんでした。私は今すぐそれをクリアして試しました。すべてが同じです:(サーバーの設定で何かできますか?データはPHPページに送られますが、まったく実行されていないようですが、まっすぐな番号などを印刷しようとしても、$ _POSTパラメータ – Jull