2011-02-01 12 views
0

フォームフィールドを持ち、2つの他のフィールドに基づいてイメージを設定するとします。これらがCOLORとSTYLEと呼ばれているとします。したがって、スタイルが「A」で色が黒の場合、これらの選択肢を表す一意のイメージを表示する必要があります。スタイルが「B」で色が黒の場合、別のイメージ。他の2つのフィールドに基づいてフォームフィールドを動的に設定する

だから何が次から欠落している?:

add_filter("pre_render", "populate_dropdown"); 

function populate_dropdown($form){ 

    if($form["id"] != 1) 
     return $form; 

    foreach($form["fields"] as &$field) 
     if($field["id"] == 1){ 
      $field["content"] = "DYNAMIC STUFF HERE"; 
     } 

    return $form; 
} 

答えて

0

あり、簡単にAjaxを使っていくつかのより複雑なロジックを実行する、あるいはデータベースからのカスタムコンテンツを構築することを組み合わせることができます。

style = $('#style').val(); 
color = $('#color').val(); 

$.ajax({ 
    type: "POST", 
    url: "get_image.php" 
    data: { "style" : style, "color" : color }, 
    success: function(msg) { 
      $("#image_field").html('<img src="' + msg + '" />'); 
    } 
}); 

そしてget_image.php中:

$color = $_POST['color']; 
$style = $_POST['style']; 
var $image; 

// Logic goes here, setting $image to the appropriate image link 

echo $image; 
0

なぜあなただ​​けのフォーム入力の値を取得し、その後、彼らは何に基づいて、あなたがやりたいページのロードやイベントハンドラを使用してのいずれかいけません上記geoffs3310の答えに構築するには例えば

$(document).ready(function() { 
    style = $('#style').val(); 
    color = $('#color').val(); 

    if(style=='A' && color=='black') { 
     // do something 
    } 

    if(style=='B' && color=='black') { 
     // do something 
    } 
});