我们如何在drupal 7中使用ajax回调函数将下拉值作为参数传递?

时间:2013-01-17 07:39:45

标签: php javascript ajax drupal drupal-7

我想在ajax-callback函数中传递下拉值作为参数($ user_id,$ selected)onchange但是我没有在此ajax-callback函数中获取$ selected值onchange事件**

2 个答案:

答案 0 :(得分:0)

使用jQuery:$("#yourdropdownid option:selected").text();

答案 1 :(得分: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'];
}