这是我的网址:www.xyz.com/index?city = NY 我正在尝试更新<选项>根据网址的城市价值标记“已选择”属性。 这是我的部分HTML:
<script>
function loadCity(val)
{
window.location.assign("/do/index?city="+val); //script that reload's page as per selected city value.
}
$(document).ready ( function(){
var cityValue= <?=$_GET['city'] ?>;
var k = getElementById(cityValue);
k.option.setAttribute('selected', true);
}); //this function not working
</script>
<select id="city" onchange="loadCity(this.value)">
<option>Cities</option>
<?php $cities=get_cities(); ?> //get cities from an array
<?php foreach($cities as $city): ?>
<option id="<?= $city?>" value="<?= $city?>"><?= $city?></option>
<?php endforeach; ?>
</select>
尝试了一堆其他的东西,没有任何接缝可以工作。 在此先感谢。(非常感谢您的回复!)
答案 0 :(得分:1)
首先你需要改变
var cityValue= <?=$_GET['city'] ?>;
到
var cityValue= "<?=$_GET['city'] ?>";
答案 1 :(得分:1)
$(document).ready(function(){
var cityValue = "<?php echo $_GET['city']; ?>";
$('#'+cityValue).prop('selected', true);
});
答案 2 :(得分:1)
为什么要在JavaScript中设置所选值?您可以删除整个document.ready部分并在PHP中执行。
<select id="city" onchange="loadCity(this.value)">
<option>Cities</option>
<?php $cities=get_cities(); ?> //get cities from an array
<?php foreach($cities as $city): ?>
<option id="<?= $city; ?>" value="<?= $city; ?>" <?= $city == $_GET['city'] ? 'selected' : '' ?> ><?= $city; ?></option>
<?php endforeach; ?>
</select>
或者在jQuery中你可以做到
$("#city").val(cityValue);
答案 3 :(得分:1)
而不是使用javascript,你实际上可以在你的php文件中的for循环中添加条件:
<select id="city" onchange="loadCity(this.value)">
<option>Cities</option>
<?php $cities=get_cities(); ?> //get cities from an array
<?php foreach($cities as $city): ?>
<option id="<?= $city?>" value="<?= $city?>" <?php if(isset($_GET['city']) && $_GET['city'] == $city) echo "selected";?>><?= $city?></option>
<?php endforeach; ?>
</select>
或jQuery:
$('#city option[value="'+cityValue+'"]').prop("selected",true);