2011-12-23 86 views
1

我有[]在如何從3元獲得一個元素在Javascript

<td><input type="checkbox" name="pay[]" value=" 
       <?php 
        echo $invoiceArr[$record_count].";"; 
        echo $TotalArr[$record_count].";"; 
        echo $amount_dueArr[$record_count]; 
        ?> 
        " onClick="checkTotal()"/> 
      </td> 

工資的價值三個要素,我想用

echo $amount_dueArr[$record_count]; 

裏面只有VAR元素: 可能是類似的東西?

var elements = document.getElementsByName("pay[][2]"); 


    function checkTotal() 
{ 
     var sum = 0; 
     var elements = document.getElementsByName("pay[]"); 
} 

這可能嗎? 我是否清楚自己?

謝謝大家傢伙...

完整的JavaScript函數

function checkTotal() { 
          document.payform.totalNS.value = ''; 

          var sum = 0; 
          var pay_amt_no_id = document.payform.pay_amt_noDocID_textbox.value; 
          //var elements = document.getElementsByName("pay[]"); 

          var amount_due = <?php echo $amount_dueArr[$record_count]; ?>, // no quotes 
          var sum = 0, // using 1 var statement for declarations. 
          var elements = []; 
          var elements = document.getElementsByName("pay[]").value.split(";"); 
          // pay[] is invoice_num;total;amount_due. 
          return elements.length===3 && amount_due == elements[2]; // counting on 
          // string to num conversion here 



          document.payform.pay_amt_noDocID_checkbox.value = pay_amt_no_id; 

          document.payform.totalNS.value = sum; 
          for (i=0;i < elements.length;i++) { 
            if (elements[i].checked) { 
           sum = sum + +elements[i].value; 

          } 
         } 
+0

嗯。什麼?這是沒有意義的... – 2011-12-23 03:00:34

+0

不可能或任何想法如何檢索它? – 2011-12-23 03:07:19

+3

更像是我不知道你想問什麼。如何顯示您正在嘗試創建的HTML樣本。你在混合PHP和Javascript,而不是解釋HOW/WHY,只是「這是一些隨機代碼片段」。 – 2011-12-23 03:09:06

回答

1

這是罰款,你正在做的混合PHP和JavaScript。訣竅是永遠記住,從Javascript代碼的角度來看,PHP代碼的輸出將是一個常量

這一個Javascript常數需要被正確編碼,字符串適當地引用,但不適合號等

我通常使用我的服務器端語言創建的JavaScript函數調用的參數。 - 在一大塊Javascript中創建服務器端內容可能會令人困惑,導致代碼變得脆弱。

請注意,你的問題說I have three elements in value of pay[] at嗯,不完全。在Javascript/DOM域中您將付款[]設置爲包含分號的單個字符串。我會寫代碼爲:

<td><input type="checkbox" name="pay[]" 
    value="<?php echo $invoiceArr[$record_count].";".$TotalArr[$record_count]. 
        ";".$amount_dueArr[$record_count]; ?>" 
    onClick="checkTotal()"/> 
</td> 

爲了讓它更清楚一點,您要向輸入元素提供一個字符串值。

回覆:我想用

echo $amount_dueArr[$record_count]; 

....

當然,沒問題。例如:

function checkTotal() 
{ 
    var amount_due = <?php echo $amount_dueArr[$record_count]; ?>, // no quotes 
     sum = 0, // using 1 var statement for declarations. 
     elements = []; 
    elements = document.getElementsByName("pay[]").value.split(";"); 
    // pay[] is invoice_num;total;amount_due. 
    return elements.length===3 && amount_due == elements[2]; // counting on 
               // string to num conversion here 
} 

但是比起這個解決方案,我建議你指定的PHP生成的HTML頁面的頂部AMOUNT_DUE到JavaScript變量。將echo命令隱藏到函數的中間會起作用,但不是很好的風格。

+0

我看不到結果? – 2011-12-23 04:03:00

+0

它不起作用... – 2011-12-23 04:08:25

+0

如何做到這一點?'//數字轉換爲字符串' – 2011-12-23 04:38:16