私はjQueryの知識を磨くようにして遊んでいるだけで、私は頭を抱えることはできません。私はlaravelをサイドノートとして使用していますが、これは標準のPHPにも当てはまります。jQuery - PHPの変数を格納foreachループ
私は基本的にjQueryで操作したいデータのコレクションを取得しています。検索されるリストのサイズは常に変化します。たとえば、
- オブジェクトのコレクションがあります。
- 各オブジェクトには、一定量のアイテムが添付されています。
- 各商品には名前と金額があります。
- 検索すると、各商品の名前と金額を表示することができます。
- 私はそれを変更する場合。私はそれに応じて各項目の金額を変更したい。ここで
は私のコードです:
@foreach($items as $item)
<li><span class="item_amount">{{ $item->amount }}</span>{{ $item->name }}</li>
@endforeach
これは、このオブジェクトに関連付けられているすべての項目を取得します。 この場合、私たちのようなものを参照してください。
- 400 ITEM1
- を67項目2
- 830項目3
私は非常に単純なHTML <select>
入力しました:
<select id="steven" class="formDropdown">
<option>Select item amount</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
私は、何をしたいのかが<select>
量があるときに、各項目の量を取得するjQueryのでは変数としてそれを格納してあります変更された場合、明細額はそれによって乗算されます。例えば
2は、リストはに変わってしまうの選択入力から選択された場合:私はことを考え出した
- 800 ITEM1
- 134 ITEM2
- 1660 ITEM3
金額を取得する最善の方法は、変数をPHPとして設定することです。私は<span>
タグ内にHTMLの値を選択した場合、私はそれを乗算するたびに表示された金額ではなく、元の量を乗算しているため、このようにそれを行うための
var originalAmount = '{{ $item->amount }}';
私の理由があります。例:私は明らかに今60
を得る結果は20(10 * 2)を期待し、IIの場合、乗算2で、30である
の量は10であり、Iは、3を掛けた場合私はまったく欲しいものではありません。
$(".item_amount").each(function(index) { alert(amount+ ": " + $(this).text()); });
私警告:あなたはここに私の問題を見ることができるように
は私はこのような何かをやって試してみた私のforeachループ、中項目ごとに変数を設定する必要があるということです私は今、リスト内のその位置に対応する変数としてそれらの金額を保存したい:
私は動的変数名を得るためにこれをしようとしました:
@foreach($items as $item) <li><span class="item_amount{{$item->amount}}">{{ $item->amount }}</span>{{ $item->name }}</li> @endforeach
これは、私が次に選択して操作できる動的なクラスを提供します。これは完璧です。
しかし、これらをそれぞれ変数としてjQuery内に保存するにはどうすればよいですか?
これを最前面に向かわせ、あまりにも多くのことを考えています。
- 変数1 400
- 変数2の値と "item_amount400" と命名されることになるが、67
- 変数3の値と "item_amount67" と命名されるであろうが830
の値が "item_amount830" と命名されます私はおそらくだvar item_amount400 = '{{ $item->amount }}';
:私は私が上に言及した何を達成したい
foreachループ内で変数を作成し、そのループの外にある変数をすべて取得できますか?例えば。
もしそうなら、どのようにすればよいでしょうか、どのように変数をグローバルにして、何を検索するのかを正確に知ることができますか?
私は、それぞれのオブジェクトはアイテムの異なる量を持って述べたように、いくつかは3いくつかは、30
あなたが本当にクラス名に金額を追加する必要がありますか? –
私は知らない、それが私が求めている理由です。それは解決する方法がわからない問題に対する可能な解決策でした。 –
私はクラス名から金額を削除します。また、選択したボックスにJquery onchangeを追加します。その関数の中で、クラス名が 'item_amount'であるすべての要素を選択し、その値を現在の値*選択された値に設定します。 –