এটি সম্পাদন করতে আপনি আজাক্স ব্যবহার করতে পারেন। ড্রুপাল 7 এর এখন ভাল অ্যাজাক্স সমর্থন রয়েছে। আপনার প্রথম নির্বাচিত তালিকায় (শহর) আপনাকে অ্যাজাক্স তথ্য যুক্ত করতে হবে। তারপরে, দ্বিতীয় নির্বাচনের তালিকাটি প্রথম তথ্যের উপর ভিত্তি করে পপুলেট করা যায়। প্রথমটিতে কোনও বিকল্প নির্বাচন না হওয়া অবধি আপনি দ্বিতীয় নির্বাচন তালিকাটিও আড়াল করতে পারেন এবং আমি কীভাবে কিছুটা করব তা ব্যাখ্যা করব। প্রথমে প্রাথমিক ফর্মটি সেট আপ করতে:
$form['city'] = array(
'#type' => 'select',
'#title' => t('City'),
'#options' => $options,
'#ajax' => array(
'event' => 'change',
'wrapper' => 'squadron-wrapper',
'callback' => 'mymodule_ajax_callback',
'method' => 'replace',
),
);
$form['squadron_wrapper'] = array('#prefix' => '<div class="squadron-wrapper">', '#suffix' => '</div>');
$form['squadron_wrapper']['squadron'] = array(
'#type' => 'select',
'#title' => t('Squadron'),
'#options' => $squadron_options,
);
এটি কেবলমাত্র উপাদানগুলির প্রাথমিক সেটআপ। স্কোয়াড্রন-এ কী কী বিকল্পগুলি দেওয়া উচিত তা নির্ধারণ করার জন্য এখন আপনাকে একটি উপায় প্রয়োজন। প্রথমে আপনাকে আপনার অ্যাজাক্স কলব্যাকটি 'শহর' নির্বাচনের তালিকায় চিহ্নিত করতে হবে। বেশিরভাগ ক্ষেত্রে আপনি এজেন্ট $ ফর্মটিতে এজাক্স উপাদানটি আবৃত উপাদানটিকে ফিরে আসতে পারেন।
function mymodule_ajax_callback($form, $form_state) {
return $form;
}
এখন, যখন 'সিটি' বাছাই তালিকার পরিবর্তন হবে এটি ফর্মের স্কোয়াড্রন-মোড়কের অংশটি পুনর্নির্মাণ করবে। আপনার 'নগর' মানটি এখন $ form_state ['মান'] এ থাকবে। সুতরাং, ফর্মটি পুনর্নির্মাণ করার সময় আমাদের 'সিটি' এর মানের উপর ভিত্তি করে বাছাই তালিকার কী বিকল্পগুলি দিতে হবে তা নির্ধারণ করতে হবে।
// Get the value of the 'city' field.
$city = isset($form_state['values']['city']) ? $form_state['values']['city'] : 'default';
switch ($city) {
case 'default':
// Set default options.
break;
case 'losangeles':
// Set up $squadron_options for los angeles.
break;
}
// If you want to hide the squadron select list until a city is
// selected then you can do another conditional.
if ($city !== 'default') {
$form['squadron_wrapper']['squadron'] = array(
'#type' => 'select',
'#title' => t('Squadron'),
'#options' => $squadron_options,
);
}