0

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
    } 
?> 
4

2 に答える 2

2

ループによって生成されるすべての入力は、1 つのフォームの一部として送信されることを意図していますか? それらを配列に照合してみませんか?

名前をそれぞれから に、 からdaysに変更します。days[]date_nowdate_now[]

PHP 制御構造を直接 html に埋め込む場合は、より明確にするために代替構文を使用することを検討してください。

現在のループ カウンターを各入力の id に埋め込むと、それぞれを個別に選択できるようになります。

各入力に属性を追加するclassと、それらをグループとして選択できます。

の結果を の 2 番目のパラメータに直接$ts渡すことで、各ループ反復でへの余分な割り当てをなくすことができます。strtotime()date()

あなたの最終的な意図が完全に明確ではないので、私の提案をすべて適用して変更した最初のコード サンプルを次に示します。

<?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; ?>

上記のコードから、次のように入力の 1 つを個別に選択できます。

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

または、次のように非表示の入力をすべて選択できます。

var dates_now = [];
$(".date_now").each(function(i, input) {
    dates_now.push(input.val());
});
于 2012-11-28T03:29:04.317 に答える
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はすべての値が含まれています。

于 2012-11-28T03:01:59.747 に答える