2016-01-23 7 views
1

Я использую диапазон дат на веб-странице, чтобы агрегировать данные MySQL и представить его на основе выбранного временного интервала. По какой-то причине значения для каждой опции в раскрывающихся меню не отображаются. Вот PHP Я использую:Значение параметра Не ​​отображается в раскрывающемся меню?

<select name="date1" title="<?=$date1 ?>"> 
<?php foreach($availableDates as $date) { ?> 
<option value="<?=$date ?>"<?php if($date == $date1) { ?> selected="selected"<?php } ?><?=$date ?></option> 
<?php } ?> 
</select> 

А вот выход HTML:

<option value="2015-01-03" selected="selected" 2015-01-03<="" option=""></option> 

Самая странная часть этого работала в течение самого долгого времени, и вдруг даты в обоих меню исчезло. Любые идеи почему?

+1

Вы видите закрытие '>' для '

+0

закрыть стартовый тег опции. – ameenulla0007

+0

Это было бы более очевидно, если бы вы избавились от ужасного стенографического метода. Отформатируйте свой код в приличном режиме, и вы обнаружите ошибки, подобные этому, быстрее. – RST

ответ

1

Это произошло, потому что вы не хватает концовки > из тега

Модифицированный код:

<select name="date1" title="<?=$date1 ?>"> 
<?php foreach($availableDates as $date) { ?> 
<option value="<?=$date ?>"<?php if($date == $date1) { ?> selected="selected"<?php } ?>> 
<?=$date ?> 
</option> 
<?php } ?> 
</select> 
1

Ваш PHP фрагмент отсутствует закрывающий >:

<select name="date1" title="<?=$date1 ?>"> 
    <?php foreach($availableDates as $date) { ?> 
    <option 
    value="<?=$date ?>" 
    <?php if($date == $date1) { ?> selected="selected"<?php } ?> 
    > 
    <?=$date ?> 
    </option> 
    <?php } ?> 
</select> 
1

Попробуйте так же:

<select name="per1" id="per1"> 
    <option selected="selected">Choose one</option> 
    <?php 
    foreach($names as $name) { ?> 
     <option value="<?= $name['name'] ?>"><?= $name['name'] ?></option> 
    <?php 
    } ?> 
</select> 

Теперь вы можете поместить свой код здесь.

+0

Ну как OP получить выбранные варианты ??? – devpro

+0

http://www.html-form-guide.com/php-form/php-form-select.html –

+0

Нет, мой друг, я говорю о том, будет ли дата == date1 выбрана эта конкретная опция ... u пропущен Это. :) – devpro

1

1. Добавить > тег ближе после того, как выбранный атрибут
2. Удалить обсчитывается <?= ?> тег, который является нежелательным в то время как вы используете <?php ?>

<select name="date1" title="<?php print $date1; ?>"> 
    <?php foreach($availableDates as $date) { 
     ?><option value="<?php print $date; ?>"<?php if($date == $date1) { ?> selected="selected"<?php } ?>> 
      <?php print $date; ?> 
     </option> 
    <?php } ?> 
</select> 
0

Я предлагаю это меньше ошибок кода.

$selHTML = '<select name="date1" title="'.$date1.'">'; 
foreach($availableDates as $date) { 
    $sel = ($date == $date1)?" selected":""; 
    $selHTML .= '<option value="'.$date.'"'.$sel.'>'.$date.'</option>'; 
} 
$selHTML .= '</select>'; 
echo $selHTML;