У меня есть этот java-скрипт:
$("#judet div.jqTransformSelectWrapper ul li a").click(function(){ var jud= $("#judetul1").val(); $.ajax({ type: "POST", url: "rental/cms/inc/ajax/cities.php", data: { 'jud': jud }, success: function (msg) { $("#oras1").html(msg); }, error: function (xhr, err) { alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); alert("responseText: " + xhr.responseText); } }); });
и этот html:
<div class=" h"> <span class="block">Orasul</span> <div class="select6" id="oras"> <select name="oras1" id="oras1" onchange="zone1();sectorul();"> </select> </div> <div class="clear"></div> </div> <div class="clear"></div>
и этот php:
public function get_oras($code3) { echo "<option selected='selected' value='0'>Alege oras</option>"; $code='PPLA'; $code2='PPLA2'; $sql="SELECT * FROM `locatii` WHERE (`feature_code`=:code OR `feature_code`=:code2) AND `admin1_code`=:code3 ORDER BY `asciiname` ASC"; $stmt = $this->dbh->prepare($sql); $stmt->bindParam(':code', $code, PDO::PARAM_STR, 30); $stmt->bindParam(':code2', $code2, PDO::PARAM_STR, 30); $stmt->bindParam(':code3', $code3, PDO::PARAM_INT); $stmt->execute(); foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $result) { $oras[]="<option value='".$result['geonameid']."'>".$result['asciiname']."</option>"; } return $oras; }
html для judetul:
<div class=" h"> <span class="block">Judetul</span> <div class="select6" id="judet"> <?php $judetul=$db->get_judet(); ?> <select name="judetul1" id="judetul1" > <option selected="selected">---</option> <?php foreach ($judetul as $val=>$k) { ?> <option value="<?php echo $val; ?>"><?php echo $k; ?></option> <?php } ?> </select> </div> <div class="clear"></div> </div> <div class="clear"></div>
Проблема в:
без jqtransform скрипты работают очень хорошо, но если я включаю jqtransform, select oras1 не заполняется. Я думаю, что это проблема, потому что сначала я преобразовываю форму, а затем заполняю значения … так что значения не будут преобразованы в мой выбор oras1.
Как я могу это исправить? Могу ли я преобразовать выделение после заполнения его значениями? Большое спасибо!
Ваша догадка правильная, jqTransform преобразует ваш поле выбора в готовый документ. Внешний вид, который вы видите в поле выбора после jqTransform, является оберткой. Поэтому обновление в select после вашего запроса ajax влияет только на скрытый элемент select, но не на оболочку.
Вы можете попробовать re-jqTransfrom из окна выбора, чтобы все было правильно.
Или посетите мой блог http://infrahtml.blogspot.hk/2013/12/jstransform-select-box-repopulation.html, чтобы внести изменения в плагины