1

私は現在、オプションの1つが選択されているときよりもドロップダウンボックスを持っています-

"Your Favourite Car Is (option)

私が今する必要があるのは、これを変更してテキストボックスにすることですが、ユーザーは配列内のオプションの1つしか入力できず、別のオプションが選択された場合はyou cannot have this as one of the choices、複数入力することもできます。理論的には反響する可能性があります-

"Your Favourite Car is Mazda, Nissan, Renault!"

これが、私が作業しているドロップボックス用のコードです。

<form method="post">
<div id="dropdown">
<?php
if(isset($_POST['cars']))
{
   $mycar=$_POST['cars'];
}
else
{
   $mycar="";
} 
$array1 = array('Volkswagen' , 'Renault' , 'Land Rover');
echo' <select name="cars" onchange="this.form.submit()">';
foreach($array1 as $cars)
{ ?>
   <option value="<?php echo $cars; ?>" <?php if($mycar==$cars) echo  "
   "selected='selected'"; ?> ><?php echo $cars; ?></option>
   <?php
}
echo'</select>
</div></form>';
?>

<div id="result">  
<?php
echo "Your favourite car is $mycar"; 
?>
</div>

編集:私はこれを試みましたが、現在私が常にエコーしているのは「この車は選択の中にありません」であり、テキストボックスに入力したものは何も影響していないようです

ここに私が持っているコードがあります

<?php
$cars = array("Volkswagen","Renault","Land Rover");
?>
<form action="array.php" method="post">

   <center> <input type="text" name="cars" id="cars" />
  <input type="submit"  /> </center>
<?php
if (in_array($_POST, $cars)) {
    echo "Your Favourite Car is $_POST";
    }

else {
    echo "This car is not among the selection";
     }
?> 
</form>
4

2 に答える 2

0

複数の値を受け入れるには、フォームを編集する必要があります。また、テキストをエコーする前に、ユーザーの値を確認できます。

<form method="post">
<div id="dropdown">
<?php
$array1 = array('Volkswagen' , 'Renault' , 'Land Rover');
$error = false;
if(isset($_POST['cars']))
{
  $mycar=$_POST['cars'];
  foreach ($mycar as $car) 
  {
    if (!in_array($car, $array1))
    {
      $error = $car;
    }
  }
}
else
{
$mycar=Array();
}
echo' <select name="cars[]" multiple="multiple">';
foreach($array1 as $cars){ ?>
<option value="<?php echo $cars; ?>" <?php if(in_array($cars, $mycar)) echo  "\"selected='selected'"; ?> ><?php echo $cars; ?></option>
<?php
}
echo'</select>
<input type="submit" name="submit" value="submit" />
</div></form>';
?>

<div id="result">  
<?php
if ($error===false) echo "Your favourite car is ".implode(', ', $mycar);
else echo $error . ' is not contained by ' . implode(', ', $array1);
?>
</div>
于 2013-08-23T08:40:31.210 に答える