it-swarm.asia

تعيين القيمة الافتراضية القائمة حدد

لقد حددت قائمة مع الخيارات:

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 

أحاول تعيين القيمة الافتراضية لها على 500:

$form['price']['min']['#options'] = $options; 
$form['price']['min']['#default_value'] = 500;

لكن هذا لا يعمل.

16
breethe

لم أر هذه المشكلة من قبل. يجب أن تعمل هذه القيمة الافتراضية. أود أن أقول حاول جعل المفتاح سلسلة وتعيين #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 قد يتم تجاوزه؟

3
jordojuice

يجب أن تكون التعليمات البرمجية الخاصة بك تعمل ، بشكل عام استخدم قيمة المفتاح كقيمة افتراضية ، إذا لم تعمل ، اجعل السلسلة كمفاتيح واستخدمها كقيمة افتراضية.

3
Ashok KS

هل حاولت استخدام سلسلة بدلا من عدد صحيح؟

$form['price']['min']['#default_value'] = "500"

ربما يستحق الأمر أيضًا محاولة إضافة 'und' المفتاح.

2
silkAdmin
$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
        );

لتعيين القيمة الافتراضية في قائمة التحديد ، نستخدم معلمة #default_value. ستكون قيمة السمة default_value لقائمة التحديد هي مفتاح صفيف قائمة التحديد.

1
Nitesh Sethia

هل حاولت استخدام المفتاح خارج خيارات المصفوفة $ لتحديد القيمة الافتراضية؟
$form['price']['min']['#default_value'] = $options[500];

1
JurgenR

سيظهر الكود التالي الحقل بقيمته الافتراضية 500.

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
          '#title' => 'Price',
        );  
0
Aswini K