使用jQuery从PHP表单中选择文本输入


Selecting text input from PHP form using 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();
 })
});

看起来你只是把选择器弄混了。您希望遍历每一行,但您的选择器引用$(".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();
});
});

您的.cartid选择器中有额外的()

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

另外,你不应该循环通过.item-row而不是.cartid吗?

你像这样迭代:

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

似乎你应该做

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

没有检查剩下的代码。

编辑:

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