Название опции Echo Dropdown вместо его значения - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь echo имя выбранного раскрывающегося списка, а не его значение.Я понимаю, что echo значение раскрывающегося списка может быть достигнуто путем реализации чего-то, например:

$variable = $_POST['vehicleStyle'];
echo $variable;

, где vehicleStyle - это имя <select>.

Однако я не после value I после названия опции.

Вот мой PHP.Я извлекаю данные из XML-документа, где $k равно имени опции, а $v равно ее значению.

<html>
 <body>

  <?php
    $xml = file_get_contents('note.xml');
    $dom = new DOMDocument();
    $dom->loadXML($xml);
   ?>

    <form action="additionalinfo.php" method=POST>

     <select name="vehicleStyle">
      <option selected="selected">Choose style</option>
      <?php
        foreach ( $dom->getElementsByTagName('style') as $styletwo )   {
          $styleid = $styletwo->getAttribute("name");
          $styleData [$styleid]= $styletwo->getAttribute("id");;
            }
        foreach ($styleData as $k=>$v){
      ?>
    <option value='<?php echo $v;?>'><?php echo $k;?> </option>
     <?php
      }
     ?>
   </select>

   <br>
   <button class="button">Submit</button>
 </form>


 </body>
</html>

Выводит выпадающий список, содержащий два значения: «Audi => 292015` и« BMW => 292016 ».Если я добавлю

$variable = $_POST['vehicleStyle'];
echo $variable;

к своему коду, я получу либо 292015, либо 292016 (в зависимости от того, что выбрано).Как я могу повторить название выпадающего меню, Audi или BMW?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 09 октября 2018

Если вам нужен только текст, а не число, то не включайте число в качестве значения в опции.

<option><?php echo $k;?></option>

Если вы не указали атрибут значения,текст будет использоваться в качестве значения по умолчанию.

Если вам нужно получить и текст, и значение, существуют различные предложения о том, как это сделать здесь .

0 голосов
/ 09 октября 2018

Как насчет ...

<option value='<?php echo $v . '|' . $k;?>'><?php echo $k;?> </option>

Тогда

$variable = $_POST['vehicleStyle'];
$variable = explode('|', $variable);

echo $variable[0];  //The "value"
echo $variable[1];  //The "text"

Возможно, некоторые проверки будут более трудными, но это должно дать вам то, что вам нужно.

0 голосов
/ 09 октября 2018

Просто измените value опции на $k вместо этого, т.е.

<option value='<?php echo $k;?>'><?php echo $k;?> </option>
...