У меня есть цикл php foreach, где .data_fromCity содержит разные значения для каждого элемента. Каждый элемент имеет форму с вводом. Что я хочу сделать, это получить значение переменной EACH $ fromCity и добавить его к этому входу.
<?php foreach( $rows as $row ) : { ?>
<div class="data_fromCity"><?php echo $fromCity; ?></div>
<form><input type="text" name="cityinput" value=""></form>
<?php } ?>
Я думал о добавлении в этот цикл чего-то подобного, но он добавляет текст всех элементов php в одну строку для всех элементов.
<script> $("input[name='cityinput']").val($('.data_fromCity').text()); </script>
Это должно быть легко в jquery, но я не очень хорош в jquery 🙂 Спасибо за любую помощь!
Исходный код, который отображается на веб-интерфейсе:
<div class='wrapper'>
<div class="data_fromCity">London</div>
<form><input type="text" name="cityinput" value=""></form>
<div class="data_fromCity">Rome</div>
<form><input type="text" name="cityinput" value=""></form>
<div class="data_fromCity">Paris</div>
<form><input type="text" name="cityinput" value=""></form>
<div class="data_fromCity">Madrid</div>
<form><input type="text" name="cityinput" value=""></form>
</div>
С оберткой будет проще:
<?php foreach( $rows as $row ) : { ?>
<div class='wrapper'>
<div class="data_fromCity"><?php echo $fromCity; ?></div>
<form><input type="text" name="cityinput" value=""></form>
</div>
<?php } ?><script type='text/javascript'>
$.each($('.wrapper'), function(){
$this = $(this);
text = $this.find('.data_fromCity').text();
$this.find('input[name="cityinput"]').val(text);
});
</script>
Вам не нужна обертка. Вы можете сделать это в 3 строки.
$inputs = $('input[name="cityinput"]');
$('.data_fromCity').each(function(i, obj) {
$($inputs.get(i)).val( $(obj).text() );
});
Демо-версия: http://jsfiddle.net/ya3vewgo/