2014-09-09 2 views
0

Я пытаюсь сгенерировать optgroups и параметры с PHP из массива, и он его генерирует, но моя optgroup ошибочна. Он отображает только первое слово. В источнике страницы это правильно.optgroup, сгенерированный php

$my_array = array(
    first optgroup => array(
     key1 =>value1, 
     key2 => value2, 
     key3 => value3, 
    ), 
    second optgroup => array(
     key1 =>value1, 
     key2 => value2, 
     key3 => value3, 
    ), 
); 
foreach ($my_array as $optgroup => $other_array) { 
    echo "<optgroup label=". $optgroup . ">"; 

    foreach ($other_array as $key => $value) { 
     echo "<option value=" . $key . ">" . $value . "</option>"; 
} 
    echo "</optgroup>"; 

in the source code is fine: 

<optgroup label=first optgroup> 
    <option value=key1>value1</option> 
    <option value=key2>value2</option> 
    ....... 

но на моем поле выбора я вижу только «первый», вместо «первого OPTGROUP»

Любые идеи ?? Благодаря!!

ответ

1

Вы должны были бы встроить некоторые цитаты:

echo "<optgroup label=\"{$optgroup}\">"; 
         ^^-----------^^---- 

Обратите внимание на обратный слеш на вложенных кавычек. Это будет генерировать

<optgroup label="foo bar"> 

вместо

<optgroup label=foo bar> 
       ^^^--- value for "label" attribute 
        ^^^---unknown random attribute 

вы делаете сейчас

+0

Опция с более высокой производительностью будет 'эхо '< optgroup label = "', $ optgroup,' '>';' –

+0

, если микроскопическая экономия при использовании ',' вместо конкатенированной строки сохранит вашу систему m, тогда вы работаете над операцией размером с facebook и не должны задавать простые вопросы, подобные этому на этом сайте. –

+0

Просто указывая. По вашему запросу я могу удалить комментарий. И facebook - ужасный пример, поскольку их производительность довольно сомнительна ... Веб-сайт медленно, как гонка улиток в замедленном темпе. –

0

попробовать это,

$my_array = array(
    'first optgroup' => array(
     'key1' =>'value1', 
     'key2' => 'value2', 
     'key3' => 'value3', 
    ), 
    'second optgroup '=> array(
     'key1' =>'value1', 
     'key2' => 'value2', 
     'key3' => 'value3', 
    ), 
); 

echo "<select>"; 
foreach ($my_array as $optgroup => $other_array) { 
    echo "<optgroup label=". $optgroup . ">"; 
    foreach ($other_array as $key => $value) 
     echo "<option value=" . $key . ">" . $value . "</option>"; 
} 
    echo "</optgroup>"; 
}); 
echo "</select>"; 
Смежные вопросы