我也在使用drupal-7并创建一个模块。一种形式,其中有2个下降。在选择汽车型号(第1次下拉)时,车型(第2次下降)值会发生变化。当我创建新的时,它工作得很好。但是一旦我去编辑某个值,它就会显示错误。
=============================================== ============================
发生了AJAX HTTP错误。
HTTP结果代码:500
调试信息如下。
路径:/ vehicle_ades /?q = system / ajax
StatusText:服务不可用(带消息)
ResponseText:PDOException:SQLSTATE [42S22]:找不到列:1054'where子句'中的未知列'ajax':
SELECT标题,details,value_of_offer,exchange_offer,total_savings,car_model_id,car_variant_id FROM {va_offer}其中id = ajax; Array()
=============================================== ============================
如何将汽车模型ID传递给ajax函数
答案 0 :(得分:0)
我正在研究drupal 7.以下是代码。我所做的是选择汽车模型汽车变种将改变和数据保存在表格中。
function add_offer_form($ form,$ formstate){
$ form ['add_offer_new_car_model'] = array(
'#type' => 'select',
'#required' => TRUE,
'#options' => $car_model,
'#ajax' => array(
'effect' => 'fade',
'progress' => array('type' => 'none'),
'callback' => 'variant_callback',
'wrapper' => 'replace_variant',
),
);
//组合框以选择新车变种
$ form ['add_offer_new_car_variant'] = array(
'#type' => 'select',
'#options' => array(),
// The prefix/suffix provide the div that we're replacing, named by #ajax['wrapper'] above.
'#prefix' => '<div id="replace_variant">',
'#suffix' => '</div>',
);
// AJAX请求为每次更改调用表单构建器函数。
//我们可以根据$ form_state更改构建表单的方式。
if(!empty($ formstate ['values'] ['add_offer_new_car_model'])){
$model_id = $formstate['values']['add_offer_new_car_model'];
$rows = array();
$result = db_query("SELECT id, variant_name from {va_car_variant} where car_model_id in ($model_id,1) order by variant_name");
while ($data = $result->fetchObject()) {
$id = $data->id;
$rows[$id] = $data->variant_name;
}
$form['add_offer_new_car_variant']['#options'] = $rows;
}
}
/////////////////////////////////////////////// ///////// ///////// AJAX CALL BACK的功能
function variant_callback($ form,&amp; $ form_state){
返回$ form ['add_offer_new_car_variant'];
}