我想将php参数传递给html select options标签。它适用于使用value属性的输入标记,如下所示:
<input type="text" name="to" value= "<?php echo $parameter ?>" size=10>
我尝试对select标签执行相同操作,但有些原因导致其无效。以下是选择标记:
<select name="clinic">
<option value="<?php echo $clinicName; ?>" >Baylor</option>
<option value="<?php echo $clinicName; ?>" >IDCC</option>
</select>
请注意,该参数需要传递给上述语句下面的sql语句,如下所示:
$clinicName = $_POST['clinic'];
$sql = "select * from patients where clinic = '$clinicName'";
答案 0 :(得分:0)
应该做的伎俩
<select name="clinic">
<option <?php echo ($clinicName=="Baylor" ? "selected" : ""; ?> value="Baylor">Baylor</option>
<option <?php echo ($clinicName=="IDCC" ? "selected" : ""; ?> value="IDCC">IDCC</option>
</select>
另外,正如我在评论中提到的那样,你需要阅读SQLi,否则你的网站只是已被黑客入侵的列表中的一个。
答案 1 :(得分:0)
您是否尝试在<select>
上设置当前选定的值?如果是这样,您需要使用if
语句来检查哪一个标记为已选择:
<option value="Baylor"<?php if($clinicName == 'Baylor') echo ' "selected"'?>>Baylor</option>
<option value="IDCC"<?php if($clinicName == 'IDCC') echo ' "selected"'?>>IDCC</option>
您也可以使用ternary operator:
代替if
<option value="Baylor"<?php echo $clinicName == 'Baylor' ? ' "selected"' : ''?>>Baylor</option>
<option value="IDCC"<?php echo $clinicName == 'IDCC') ? ' "selected"' : ''?>>IDCC</option>
答案 2 :(得分:0)
首先,请清理您的SQL查询。现在它比Lindsay Lohan更容易被利用。如果使用mysql_ *函数,则将其写为:
$sql = "select * from patients where clinic = '".mysql_real_escape_string($clinicName)."'";
其次,在你的HTML中,$ clinicName在两种情况下是相同的。所以$ _POST ['诊所']无论如何总是一样的。如果要预先选择一个值,则需要将其写为:
<select name="clinic">
<option value="Baylor" <?php if($clinicName=='Baylor'){ echo 'selected'; } ?>>Baylor</option>
<option value="IDCC" <?php if($clinicName=='IDCC'){ echo 'selected'; } ?>>IDCC</option>
</select>
除此之外,我对你的问题仍感到有点困惑。
答案 3 :(得分:0)
将其复制到HTML标记
中<select name="clinic">
<option value="baylor" >Baylor</option>
<option value="IDCC" >IDCC</option></select>
这是在您的HTML标记之前
<?php
echo $clinicName = $_POST['clinic'];
?>