2014-09-21 34 views
0

我有這樣的代碼使用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

查看生成的HTML。查看屬性值周圍的引號。他們目前非常錯誤。

停止嘗試通過將許多不同的字符串聚合在一起來生成HTML。很難看到發生了什麼。

$value = $y . "-" . $bb; 
?> 
<option value="<?php echo htmlspecialchars($value); ?>"> 
    <?php echo htmlspecialchars($value); ?> 
</option> 
<?php  
+0

@JakirOnglah同意,在實際使用字符串 – Luke 2014-09-21 16:08:30

+0

之前進行連接通常更有用,謝謝,現在可以工作.. – 2014-09-21 18:29:22

0

我懷疑這是你的使用引號的位置:

echo "<option value ='$y'"."-"."$bb".">".$y."-".$bb; 

我會把它改成這樣:

echo "<option value ='$y"."-"."$bb"."'>".$y."-".$bb; 

我提出第二'剛剛開幕option標籤的>前。

單引號'是爲選項標籤,以及雙引號"是爲PHP字符串,你簡單地切割valueoption

+0

ow,是嗎?生病嘗試 – 2014-09-21 16:04:39

+0

它工作? :) – Luke 2014-09-21 16:30:12

+0

哦,對不起,我忘了回覆,是的,這是..謝謝 – 2014-09-21 18:28:34