Jquery 脚本在 php foreach 循环中

Jquery script in php foreach loop

我有 php foreach 循环,其中 .data_fromCity 包含每个元素的不同值。每个项目都有带输入的形式。我想要做的是获取每个 $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/