使用PHP数组进行javascript选择选项

时间:2016-05-18 08:18:46

标签: javascript php jquery

我混合了我的代码和使用select选项相关的Stackoverflow。

代码有javascript和php&我提供了插件链接,仅供参考。

所以我使用php数组作为select选项。我正在尝试填充选择城市的第二个选项。

  

由于时区的目的,我需要使用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>	
<?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++) 
		{
            console.log(jqueryarray[i]);
        };
		
		$("#type").change
		(function (){
        var val = $(this).val();
		if (val == "Japan (日本)"=>"JP",) 
		{
            $("#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>	<option value=\"9\">Shizuoka</option><option value=\"9\">Tokyo</option><option value=\"9\">Utsunomiya</option><option value=\"9\">Yokohama</option></select>");
		} 	
		else if (val =="Andorra")
		{
		    $("#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>");
		
		}
});

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

enter image description here

1 个答案:

答案 0 :(得分:0)

您正在尝试将select放入另一个选择中。

$("#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)。