0

これは私の URL です: www.xyz.com/index?city=NY URL の市区町村の値に従って < option > タグの 'selected' 属性を更新しようとしています。これは私の部分的な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>

他のものをたくさん試してみましたが、うまくいきません。よろしくお願いします。

4

4 に答える 4

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);
于 2013-03-28T16:45:02.813 に答える
1
$(document).ready(function(){
    var cityValue = "<?php echo $_GET['city']; ?>";
    $('#'+cityValue).prop('selected', true);
});​ 
于 2013-03-28T16:31:14.827 に答える
1

まず、変更する必要があります

var cityValue= <?=$_GET['city'] ?>; 

var cityValue= "<?=$_GET['city'] ?>"; 
于 2013-03-28T16:29:59.920 に答える
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);
于 2013-03-28T16:36:53.447 に答える