如何使用jquery获取php中文本字段和隐藏字段的循环值

时间:2012-11-28 02:59:29

标签: php jquery

如何使用jQuery获取每个输入字段的值(隐藏和可见)?

<?php 
     $date   = date('m-d-Y');
     $ts     = strtotime($date);
     $year   = date('o', $ts);
     $week   = date('W', $ts);

     for($i = 1; $i <= 7; $i++) {
     ?><td><?php
     $ts = strtotime($year.'W'.$week.$i);
     ?><input type="text" name="days" id="days" />
      <input type="hidden" name="date_now" id="date_now" value="<?php print date("Y-m-d", $ts); ?>" />
    </td><?php
    } 
?> 

2 个答案:

答案 0 :(得分:2)

循环产生的所有输入是否都要作为一个表单的一部分提交?为什么不整理它们into an array

分别将名称从days更改为days[],从date_now更改为date_now[]

将php控制结构直接嵌入到html中时,请考虑使用alternative syntax以获得更清晰。

如果您将当前循环计数器嵌入到每个输入的id中,您将能够单独选择每个输入。

如果您为每个输入添加class属性,则可以将它们选为一个组。

您可以通过将strtotime()的结果直接传递给date()的第二个参数来消除每个循环迭代中$ts的额外分配。

由于目前还不完全清楚你的最终目的是什么,这里是你的初始代码示例,我的所有建议都已修改:

<?php 
$date = date('m-d-Y');
$ts = strtotime($date);
$year = date('o', $ts);
$week = date('W', $ts);

for($i = 1; $i <= 7; $i++): 
$dt = date("Y-m-d", strtotime($year.'W'.$week.$i));
?>
<td>
<input type="text" name="days[]" id="days<?=$i?>" class="days" />
<input type="hidden" name="date_now[]" id="date_now<?=$i>" value="<?=$dt?>" class="date_now" />
</td>
<?php endfor; ?>

从上面的代码中,您可以单独选择其中一个输入:

$("#days3").val();

或者,您可以选择所有隐藏的输入:

var dates_now = [];
$(".date_now").each(function(i, input) {
    dates_now.push(input.val());
});

答案 1 :(得分:0)

将id ='days'和id ='date_now'更改为类(class ='days'和class ='date_now'),假设您需要所有值,我们可以将它们放入如下数组:

var days_array     = [];
var date_now_array = [];

$('.days').each(function() {
    days_array.push($(this).val());
});

$('.date_now').each(function() {
    date_now_array.push($(this).val());
});

现在变量days_arraydate_now_array包含所有值。