2012-01-05 17 views
0

フォームデータをAJAX経由で送信しても問題はありません。また、すべてのデータを別のdivに表示することもできます。フォーム提出後にフォームフィールドを更新

しかし、サーバーの応答に基づいて新しい情報でフォーム自体を更新するにはどうすればよいですか?私の場合は

は私が持っている:フォームから

  • データは(jQueryのシリアライズで)収集とAjaxを通じてPHPスクリプトに送信され、チェックボックスのグループを含む多くの入力、と

    1. 形。
    2. 選択したチェックボックスの近くのテキストに特定の色を設定する必要があります。

    クライアント側ではなく、サーバー側のスクリプトに基づいて、この色を設定する必要があります。

    初期フォームデータに基づいてフォームを更新する必要がある場合は、正しい論理プロセスを説明してください。

  • +0

    http://jsfiddle.netでお願いします。 – diEcho

    答えて

    0

    jQueryを使用している場合は、AJAX(post/get)を介してデータを送信し、サーバースクリプトからプレーンテキスト/ json/xml形式の応答(任意)を取得します。この場合、カラーコードのみを返す必要がある場合は、プレーンテキスト形式を使用できます。応答を受け取ると、データを操作できます。

    $.post("test.php", $('#form').serialize(), 
    function(returned_data_from_server_script) { 
        $('some dom for color').css('color', returned_data_from_server_script); 
    }); 
    
    +0

    私は必要なものを変更する新しいJSコードを注入してデータを操作することを意味しますか?これが唯一の方法ですか? – ihtus

    +0

    あなたは操作される実際のデータを返す必要があります。あなたの場合は色です(例えば、サーバスクリプトは '#000'を返します)。そしてそのデータを使って、あなたが望むものを何でもできます。あなたの場合は、DOMを操作します。コード例を確認する - データを返すすべてのjquery ajaxメソッドにコールバックがあります。 –

    0

    サーバー側では、jsonエンコードされた変数を返すことができます。

    echo json_encode(array('text_color', 'green')); 
    

    次に、クライアント側では、この変数にコールバック関数でアクセスできます。

    $.ajax({ 
        url: 'ajax/test.html', 
        dataType: 'json', 
        data: $('yourform').serialize(), 
        success: function(data) { 
         var color = data.text_color; 
         $('yourElement').css('color', color); 
        } 
    }); 
    

    また、クラスを返信し、そのクラスを要素に追加することもできます。

    関連する問題