1

ajax-callback 関数でドロップダウン値を引数 ($user_id,$selected) onchange として渡したいのですが、この ajax-callback 関数の onchange イベントで $selected 値を取得していません **

4

2 に答える 2

0
$form['changethis'] = array( 
'#type' => 'select', 
'#title' => t('Rece/Paid'), 
'#description' => t('See Records'), 
'#options' => $options, 
'#default_value' => $selected, 
'#ajax' => array( 
  'callback' => 'ajax_callback', 
  'wrapper' => 'replace_textfield_div', 
  'event' => 'change', 
  'progress' => array( 'type' => 'none', ),
 ), 
);

上記は読みやすくするために追加されました。

あなたの選択は何かを投稿していて、結果を得ていませんか? それとも、何も投稿していませんか?

あなたのコードは問題ないように見えますが、本当に ajax コールバック 'ajax_callback' が必要ですか? これは、フォームの一部を返す独自の関数であるべきではありませんか?

また、'progress' => array( 'type' => 'none', ),ドキュメントには「throbber」と「bar」のみが有効であると書かれています。

代わりにこのようなことを試してください

function my_module_create_form($form, $form_state){

  // check form_state here to see if the form has been submitted
  // via ajax and change if needed.

  $options = array(0, 1, 2);
  $selected = 0;

  $form = array();
  $form['changethis'] = array( 
  '#type' => 'select', 
  '#title' => t('Rece/Paid'), 
  '#description' => t('See Records'), 
  '#options' => $options, 
  '#default_value' => $selected, 
  '#ajax' => array( 
    'callback' => 'my_module_ajax_callback', 
    'wrapper' => 'replace_textfield_div', 
    'event' => 'change', 
   ), 
  );
  return $form;
}

function my_module_ajax_callback($form, $form_state) {

  // because this is called from change event on select, 
  // it wont rebuild the form (call my_module_create_form).
  // If you want it to you have to set $form_state['rebuild']
  // (or it may be $form['rebuild'], I can't remember which one.)      

  // return form part
  return $form['changethis'];
}
于 2013-01-17T09:08:17.180 に答える
0

jQuery を使用します。$("#yourdropdownid option:selected").text();

于 2013-01-17T07:46:17.453 に答える