如何获得选项标签的完整价值?

时间:2014-09-21 15:59:48

标签: php mysql

我有这个代码使用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 请帮帮我。

2 个答案:

答案 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