2013-02-27 3 views
1

У меня есть PHP-код, который создает таблицу. Для каждого элемента заказа на поставку создается и заполняется новая строка. Цель заключается в том, когда заказ на покупку отредактирован, он отправляется назад и сохраняется в базе данных. Все работает, за исключением того, что мой код jQuery будет перебирать только первую строку для многих строк, которые у меня есть. (Так что, если у меня есть три ряда, он будет печатать первые ряды картофеля три раза.)Выбор ввода текста из формы PHP с помощью jQuery

Извините, если все выглядит беспорядочно.

PHP код:

<?php while($row = mysql_fetch_array($itemsquery)){?> 
     <tr class="item-row" id="<?php echo $row['cart_id']?>"> 
      <td class="item-name"><div class="delete-wpr"><textarea><?php echo $row['on0'];?> <?php echo $row['itemname'];?></textarea><a class="delete" href="javascript:;" title="Remove row">X</a></div></td> 
      <td class="description"><textarea class="cartid"><?php echo $row['cart_id'];?></textarea></td> 
      <td><textarea class="cost" class="text-input" type="text"><?php echo $row['itemprice'];?></textarea></td> 
      <td><textarea class="qty" type="text" name="name"><?php echo $row['quantity'];?></textarea></td> 
      <td><span class="price" type="text">$<?php 
     $linecost = $row['quantity'] * $row['itemprice']; 
     echo $linecost;?></span></td> 
     </tr> 
    <?php }?> 

заявление JQuery, чтобы увидеть, что он захватил:

$(document).ready(function(){ 
$(".item-row").change(function() { 
$((".cartid")).each(function(){ 
    row = { 
     cartid: $(".cartid").val() 
     } 

alert(row.cartid); 
performAjaxSubmission(); 
}) 
}); 
+0

я не могу видеть, в любом месте HTML узел с классом "элемент-строка" –

+0

@ AndréAlçadaPadez - Line 2 кода PHP. – Shauna

+0

Извините, сегодня я, кажется, слепой. –

ответ

0

У вас есть дополнительные () в вашем селекторе .cartid.

$(document).ready(function(){ 
$(".item-row").change(function() { 
$(".cartid").each(function(){ 
    row = { 
     cartid: $(".cartid").val() 
     } 

alert(row.cartid); 
performAjaxSubmission(); 
}) 
}); 

Кроме того, shoudn't вы будете зацикливание корыто .item-row вместо .cartid?

0

Вы перебор, как это:

$(".cartid").each(function(){ 
row = { 
    cartid: $(".cartid").val() 
    } 

Похоже, вы должны делать

$(".cartid").each(function(){ 
row = { 
    cartid: $(this).val() 
    } 

не проверили остальную часть кода.

EDIT:

$(".cartid").each(function(){ 
var cart = $(this); 
row = { 
    cartid: cart.val() 
    } 
+0

Капо, ты мужчина. Это заставило его работать, спасибо! – user2116325

2

Похоже, вы просто ваши селекторы перепутаны. Вы хотите выполнить итерацию по каждой из строк, но ваш селектор ссылается на $ (". Cartid"), который всегда будет всегда возвращать первый результат.

Это должно исправить вашу проблему:

$(document).ready(function(){ 
$(".item-row").change(function() { 
    $(".item-row").each(function(){ 
     var rowContext = $(this); 
     var row = { 
      cartid: $(".cartid", rowContext).val() 
     } 
    alert(row.cartid); 
    performAjaxSubmission(); 
}); 
}); 
Смежные вопросы