我有这个代码使用php
<select id="sem" name="y[]">
<option>Year</option>
<?php
$petsa = new DateTime();
$yr=$petsa->format('Y');
$a=$yr+1;//2015
$b=$yr-1;//2013
for($y=$b;$y<=$a;$y++)
{
$bb = $y+1;
echo '<option value="'.$y.'"'.'-'.$bb;
if(isset($_POST['y'])){
if (in_array($y."-".$bb,$_POST['y'])){
echo 'selected="selected"';
}
echo '/>'.$y."-".$bb;
}else
echo "<option value ='$y'"."-"."$bb".">".$y."-".$bb;
echo "</option>";
}
?>
</select>
if(isset($_POST['submit'])){
$sem= $_POST['sem'];//this is from other field
foreach ($_POST['y'] as $yer);
$osql2 = "INSERT INTO sy VALUES('$sem','$ss')";
if (mysql_query($osql2)){
echo "Successfully Added!";
}
此代码几乎可以正常工作,但问题是当我调用选项标记的值时,它只是给我这个值$ss=2014
,它应该像这样$ss=2014-2015
我的代码出了什么问题?该代码生成从2013-2014到2015-2016的SY 请帮帮我。
答案 0 :(得分:0)
我怀疑这是你在这里使用引号:
echo "<option value ='$y'"."-"."$bb".">".$y."-".$bb;
我会改为:
echo "<option value ='$y"."-"."$bb"."'>".$y."-".$bb;
我已将第二个'
移至开场>
代码的option
之前。
单引号'
用于选项标记,双引号"
用于PHP字符串,您只需缩短value
option
短< / p>
答案 1 :(得分:0)
查看生成的HTML。查看属性值周围的引号所在的位置。他们目前非常错误。
停止尝试通过将许多不同的字符串拼接在一起来生成HTML。很难看出发生了什么。
$value = $y . "-" . $bb;
?>
<option value="<?php echo htmlspecialchars($value); ?>">
<?php echo htmlspecialchars($value); ?>
</option>
<?php