Почему мой цикл создает пустые теги в моем ?

#php #html #select #tags #replace

#php #HTML #выберите #Теги #заменить

Вопрос:

У меня есть следующий код:

 <?php 
        $a= 11;
        echo "<select name='rabboSelect' style='width:300px;'>";
        $sqlQuery="SELECT * FROM writers";
        $result=sql($sqlQuery);
        while($row = mysql_fetch_array($result))
        {
            $a .= "<option value='" .$row["ID"]."'>" . $row["name"] . "<option>";
        }
        echo str_replace("<option></option>", "", $a);;
        echo "</select>";
        ?>
  

и в html он добавляется <option></option> после каждого, даже если я пытаюсь его удалить:

 <select name="rabboSelect" style="width:300px;">11<option value="2">הרב מילר</option><option></option><option value="3">משה דוויד</option><option></option><option value="4">קלמי גריינמן</option><option></option><option value="5">בנימין יעבץ</option><option></option><option value="8">אליהו פרץ</option><option></option></select>
  

Как я могу предотвратить это?

Комментарии:

1. чего вы пытаетесь достичь? не ясно с вашим вопросом

Ответ №1:

Во-первых, мне интересно, почему вы устанавливаете $a=11; — возможно, вы имели в виду $a=''; ?

Далее, у вас отсутствует / в закрывающем option теге. Если бы вы попробовали просмотреть исходный код вместо просмотра DOM, вы бы увидели это, а не дополнительные параметры.

Комментарии:

1. спасибо, что это было очень полезно

2. Это правильно. Вы никогда не выводите </option> , поэтому браузер закрывает теги за вас. Однако, поскольку вы выводите один <option value=...> тег и один <option> тег, браузер вставляет два закрывающих </option> тега после каждого открытия <option> .