我的复选框没有';t使用的循环来显示数据


My checkbox doesn't work with loop for to display data

我的复选框做得很好,这是我的一个:

$(document).ready(function(){
    $('input[type="checkbox"]').click(function(){
        if($(this).prop("checked") == true){
        document.getElementById("srt").value = document.getElementById("Ultra").value;
        }
        else if($(this).prop("checked") == false){
        document.getElementById("srt").value = "";
        }
    });
}); 

在我的显示数据部分,我有一个用于显示所有记录的循环。单击复选框后,我想要从document.getElementById("Ultra").value获得的值并显示在document.getElementById("srt").value上。它只在1个记录下运行良好,我检查的其他记录都不起作用。我认为问题是我将其显示在<input type="text" id="srt">上,并将文本框放在循环中以显示数据库。有什么帮助吗?

这是php的一部分:

for ( $v = 0 ; $v < mysql_num_rows($result) ; $v++ ) 
        {
    $row = mysql_fetch_assoc($result);
    ?>
    <td><input type="checkbox"/></td>
    <?php
    echo'<td>'.$row['aaa'].'</td>';
    echo'<td>'.$row['bbb'].'</td>';
    echo'<td>'.$row['ccc'].'</td>';             
    echo'<td><input type="text" id="srt"></td>';//////this one to display value i get           
    echo'<td>'.$row['dddr'].'</td>';            
    }

该值仅显示在1行中。

我看到的一件事是,每个循环中都有<input type="text" id="srt">。这意味着你的id不是唯一的,这可能会导致document.getElementById("srt").value = document.getElementById("Ultra").value;调用出现问题。

尝试使id唯一(这意味着为每个文本框提供不同的id,可能类似于srt_'.$v.',并在jquery函数中检索正确的文本框id

PS:你能在php代码中显示"Ultra"输入吗?

编辑:要获得正确的文本框,您也可以为复选框设置一个id,并使用它来获得文本框的正确id。

在您的页面中:

echo'<td><input type="checkbox" id='.$v.'/></td>';

echo'<td><input type="text" id="srt'.$v.'"></td>';

在你的功能

if($(this).prop("checked") == true){
    document.getElementById("srt"+this.id).value = document.getElementById("Ultra").value;
}

我没有测试它,所以可能会有一些调整,但这个想法是存在的。

试试这个。。

  $(document).ready(function(){
    var values = $('input.high_name:checked').map(function () {
  return this.value;
}).get(); 
alert(values);
});

并且您的复选框添加类名

<input type="checkbox" value="" name="high[]" class="high_name">