将参数传递给html从php中选择

时间:2012-03-05 14:36:50

标签: php html

我想将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'";

4 个答案:

答案 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'];
?>