2013-12-18 75 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