2013-12-18 74 views
0

我有多个编辑记录。我使用下面的脚本来比较文本框2中的textbox1的值。但问题是,当我尝试编辑多个记录时。脚本功能只在第一条记录上。我怎么能通过循环在PHP到JavaScript?如何将循环php传递给javascript

For循环

$id=$_POST['checkbox']; 
$N = count($id); 
for($i=0; $i < $N; $i++) 
{ 

这得到所有记录取决于已选中的复选框的数量。当我获得循环打开的所有值时,记录取决于计数器的值。就像这样我可以将这个循环函数传递给javascript?

<script> 
$('#sbtBtn').live('click',function(){ 
    var textBox1=document.getElementById('pr_qty[]').value; 
    var textBox2=document.getElementById('pr_total').value; 


    if((+textBox2) > textBox1){ 
     alert('value is greater than quantity'); 
     return false; 
    }else{ 
     } 
}); 
</script> 
<div class="container"> 
<form class="form-horizontal" action="" method="post">  
<?php 
$id=$_POST['checkbox']; 
$N = count($id); 
for($i=0; $i < $N; $i++) 
{ 
    $result1 = $mysqli->query(" 
SELECT a.item_name, a.item_description, a.counter, b.counter, b.pr, b.total_quantity 
FROM app a 
LEFT OUTER JOIN purchase_request b 
ON a.counter=b.counter 
WHERE a.counter='$id[$i]' 
    "); 
    while ($row = $result1->fetch_assoc()) 
     { ?> 
     <div class="thumbnail"> 
    <div style="display:none;"> 
    <div class="control-label"></div> 
    <div class="controls"> 
     <input name="counter[]" class="textbox" type="text" value="<?php echo $row['counter'] ?>" readonly="readonly"/> 
    </div> 
    </div> 


    <div class="control-label" style='float:left;width:25%;margin-left:10%;text-align:left;margin-bottom:3px;'>Item</div> 
    <div class="controls" style='float:left;width:65%;margin-bottom:3px;'> 
     <input name="firstname[]" class="textbox" type="text" value="<?php echo $row['item_name'] ?>" readonly="readonly"/> 
    </div> 

    <div class="control-label" style='float:left;width:25%;margin-left:10%;text-align:left;margin-bottom:3px;'>Description</div> 
    <div class="controls" style='float:left;width:65%;margin-bottom:3px;'> 
     <input name="lastname[]" class="textbox" type="text" value="<?php echo $row['item_description'] ?>" readonly="readonly"/> 
    </div> 

    <div class="control-label" style='float:left;width:25%;margin-left:10%;text-align:left;margin-bottom:3px;'>PR Quantity</div> 
    <div class="controls" style='float:left;width:65%;margin-bottom:3px;'> 
     <input name="pr_qty[]" id="pr_qty[]" class="textbox" type="text" value="<?php echo $row['total_quantity']; ?>" /> 
     <input id="pr_total" class="textbox" type="text" value="<?php $result2 = $mysqli->query("SELECT *, SUM(quantity) total_quantity FROM purchase_order WHERE counter='$id[$i]'"); 
     while($rows = $result2->fetch_assoc()){ echo $rows['total_quantity']; } 
     ?>"> 
    </div> 

    <div class="control-label" style='float:left;width:25%;margin-left:10%;text-align:left;margin-bottom:3px;'>PR #</div> 
    <div class="controls"> 
     <input name="pr[]" class="textbox" type="text" value="<?php echo $row['pr'] ?>" /> 
    </div> 
    </div> 
    <br> 
     <?php 
     } 
} 
?> 
<input name="submit" type="submit" id="sbtBtn" value="Update"> 
</form> 
</div> 
+0

你可以多给点解释一下你在做什么? – Ljubisa

+0

@ LJ-C我更新了我的问题。 – user3097736

回答

0

你不能给同一个id多个元素,你必须给你的文本框提供唯一的id。在你的函数中,你得到的是文本框的id,将它改为class,并且给你的textbox1和2分别放置类。否则你的脚本只能在第一条记录上工作。

JS改变

var textBox1=document.getElementsByClassName('tb1'); 
var textBox2=document.getElementsByClassName('tb2'); 

for(var i=0; i< textBox1.length; i++){ 
if((textBox2[i].value) > textBox1[i].value){ 
     alert('value is greater than quantity'); 
     return false; 
    }else{ 
     } 

}

HTML变化

<input name="pr_qty[]" id="pr_qty[]" class="textbox tb1" type="text" value="<?php echo $row['total_quantity']; ?>" /> 
      <input id="pr_total" class="textbox tb2" type="text" value="<?php $result2 = $mysqli->query("SELECT *, SUM(quantity) total_quantity FROM purchase_order WHERE counter='$id[$i]'"); 
      while($rows = $result2->fetch_assoc()){ echo $rows['total_quantity']; } 
      ?>"> 
+0

不工作:( – user3097736

+0

我试过你的更新的答案,但它不工作:( – user3097736

+0

你可以使用jQuery的js功能 –

0

在你的onclick事件,您可以读取输入领域,如值:

编辑:

var val1 = $("input[name='UR_ELE1_NAME']").val(); 
    var val2 = $("input[name='UR_ELE2_NAME']").val(); 

而且你可以比较喜欢:if(val1 > val2){ .....}

我希望这有助于。

+0

Sir akumar为什么在缩略图上? – user3097736

+0

不是缩略图,它是.form-horizo​​ntal。我已经更新。请检查并让我知道是它工作? – KumarA

+0

我要改变我的整个脚本? – user3097736