لقد حددت قائمة مع الخيارات:
$options = array(0 => '0', 500 => '500', 1000 => '1000');
أحاول تعيين القيمة الافتراضية لها على 500:
$form['price']['min']['#options'] = $options;
$form['price']['min']['#default_value'] = 500;
لكن هذا لا يعمل.
لم أر هذه المشكلة من قبل. يجب أن تعمل هذه القيمة الافتراضية. أود أن أقول حاول جعل المفتاح سلسلة وتعيين #default_value
كسلسلة. ال #options
قد يتم تمرير المصفوفة من خلال array_merge
في مكان ما ، وبالتالي إعادة إدخال مفاتيح الأعداد الصحيحة. إذا كانت المفاتيح عبارة عن سلاسل ، فهذا لا ينبغي أن يحدث. حاليًا ، يبدو صفيفك كما يلي:
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
ولكن تمرير هذا المصفوفة من خلال array_merge
يمكن إعادة تنظيم مفاتيح الأعداد الصحيحة لتكون بالترتيب التسلسلي:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
إذا حدث ذلك فإن 500
المفتاح ببساطة غير موجود. هذا بسبب array_merge
لا يحب الحفاظ على مفاتيح الأعداد الصحيحة ، ولكن يمكنك استخدام الأوتار لمنعه. لذا ، أعتقد أن صفيفك يجب أن يبدو أكثر مثل هذا:
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
ثم يمكنك تعيين #default_value
:
$form['price']['min']['#default_value'] = '500';
خلاف ذلك ، هل هناك أي مكان آخر حيث default_value
قد يتم تجاوزه؟
يجب أن تكون التعليمات البرمجية الخاصة بك تعمل ، بشكل عام استخدم قيمة المفتاح كقيمة افتراضية ، إذا لم تعمل ، اجعل السلسلة كمفاتيح واستخدمها كقيمة افتراضية.
هل حاولت استخدام سلسلة بدلا من عدد صحيح؟
$form['price']['min']['#default_value'] = "500"
ربما يستحق الأمر أيضًا محاولة إضافة 'und'
المفتاح.
$options = array(0 => '0', 500 => '500', 1000 => '1000');
$form['price'] = array(
'#type' => 'select',
'#options' => $options,
'#default_value' => 500,
);
لتعيين القيمة الافتراضية في قائمة التحديد ، نستخدم معلمة #default_value. ستكون قيمة السمة default_value لقائمة التحديد هي مفتاح صفيف قائمة التحديد.
هل حاولت استخدام المفتاح خارج خيارات المصفوفة $ لتحديد القيمة الافتراضية؟$form['price']['min']['#default_value'] = $options[500];
سيظهر الكود التالي الحقل بقيمته الافتراضية 500.
$options = array(0 => '0', 500 => '500', 1000 => '1000');
$form['price'] = array(
'#type' => 'select',
'#options' => $options,
'#default_value' => 500,
'#title' => 'Price',
);