2016-05-18 57 views
0

我混合了我有和使用select選項相關的Stackoverflow的代碼。使用PHP陣列的JavaScript選擇選項

該代碼具有JavaScript和PHP &我包含了插件的鏈接,僅供參考。

所以我使用php數組作爲選擇選項。我正在嘗試填充選擇城市的第二個選擇選項。

我需要使用因時區目的的PHP陣列

enter image description here

問題:無法填充第二個選項(多個)

<html> 
 
<head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script type="text/javascript" src="jquery-1.12.3.js"></script> 
 
<script type="text/javascript" src="json2.js"></script> 
 
<script type="text/javascript" src="json_parse.js"></script> 
 
<script type="text/javascript" src="json_parse_state.js"></script> 
 
<script type="text/javascript" src="cycle.js"></script> 
 

 
</head> 
 
<body> \t 
 
<?php $myvalues = array(
 
"Japan (日本)"=>"JP", 
 
"Albania (Shqipëri"=>"AL", 
 
"Algeria (‫الجزائر‬‎)"=>"DZ", 
 
"American Samoa"=>"AS", 
 
"Andorra"=>"AD", 
 
"Angola"=>"AO", 
 
"Anguilla"=>"AI", 
 
"Antarctica"=>"AQ",); ?> 
 
<script> 
 
    $(document).ready(function() { 
 
     var jqueryarray = <?php echo json_encode($myvalues); ?>; 
 
     for (var i = 0; i < jqueryarray.length; i++) 
 
\t \t { 
 
      console.log(jqueryarray[i]); 
 
     }; 
 
\t \t 
 
\t \t $("#type").change 
 
\t \t (function(){ 
 
     var val = $(this).val(); 
 
\t \t if (val == "Japan (日本)"=>"JP",) 
 
\t \t { 
 
      $("#ddlViewBy").html("<select id=\"jap\"><option value=\"9\">Fukuoka </option><option value=\"9\">Hamamatsu</option><option value=\"9\">Himeji</option><option value=\"9\">Hiroshima</option><option value=\"9\">Kagoshima</option><option value=\"9\">Kawasaki</option><option value=\"9\">Kitakyushu</option><option value=\"9\">Kobe</option><option value=\"9\">Kumamoto</option><option value=\"9\">Kyoto</option><option value=\"9\">Matsuyama</option><option value=\"9\">Nagoya</option><option value=\"9\">Niigata</option><option value=\"9\">Osaka</option><option value=\"9\">Sagamihara</option><option value=\"9\">Sapporo</option> \t <option value=\"9\">Shizuoka</option><option value=\"9\">Tokyo</option><option value=\"9\">Utsunomiya</option><option value=\"9\">Yokohama</option></select>"); 
 
\t \t } \t 
 
\t \t else if (val =="Andorra") 
 
\t \t { 
 
\t \t  $("#ddlViewBy").html("<select id=\"pin\"><option value=\"8\">light</option><option value=\"8\">Saint</option><option value=\"8\">grin</option><option value=\"8\">cake</option></select>"); 
 
\t \t 
 
\t \t } 
 
}); 
 

 
</script> 
 
<select id ="type"> 
 
<option value="">-----------------</option> 
 
\t 
 
<?php 
 
foreach($myvalues as $key => $value): 
 
echo '<option value="'.$key.'">'.$value.'</option>'; //close your tags!! 
 
endforeach; 
 
?> 
 
</select> 
 
\t <select id="ddlViewBy"> 
 
\t \t \t <option value="">select city</script></option> \t 
 
\t </select> \t 
 
</body> 
 
</html>

enter image description here

+1

如果代碼改變(大部分),可以嗎? –

+0

嘗試將if(val ==「Japan(日本)」=>「JP」,)'改爲'if(val ==「Japan(日本)」)'。然後按照Azamantes的回答。 – ImClarky

+0

@EdvinTenovim肯定!沒問題,這將是一個很大的幫助。 –

回答

0

你正試圖把選擇內的另一個選擇。

$("#ddlViewBy").html("<select id=\"pin\"><option value=\"8\">light</option><option value=\"8\">Saint</option><option value=\"8\">grin</option><option value=\"8\">cake</option></select>"); 

試着只把選項,沒有標籤。這應該適用於JavaScript部分。

這顯然不是javascript。我不知道它是什麼:

if (val == "Japan (日本)"=>"JP",); // you are trying to compare javascript with PHP style array element. 

JavaScript是在瀏覽器中執行,PHP是在服務器上執行,不能在同一時間在您的網頁上運行。 PHP在您的網頁甚至通過網絡進入瀏覽器之前執行。這可能會稍微清理一些事情,並幫助您避免混淆這兩者。

您可以創建一個地圖狀物體,然後像做:

if(val === mapObject['JP']) // or something similar 

您可以只創建一個字符串數組,然後將它們連接成的大HTML,如果你真的需要做這種方式(改變DOM元素的innerHTML)。

+0

嗨,是的,這就是我正在嘗試使用JavaScript和PHP數組。我用它作爲時區。 –

+0

感謝您的回答和建議。 –