2014-06-27 75 views
0

我實際上是編碼方面的新手。我正在嘗試製作條形碼掃描應用程序,並且可以掃描多個條形碼。所以我試圖將所有的數據存儲在一個數組code[],我打印的數據在HTML中。我已經定義了code[]陣列和在不同的js文件作爲在陣列中存儲id並將其用於打印

localStorage["counter"]=0; 
var code = new Array(); 
localStorage.setItem("code", JSON.stringify(code)); ` 

一個櫃檯,這裏是我的page5.html文件。在下面的代碼myvalue是從不同的代碼獲得的值。問題出在myvalue1。我想再次調用功能,再次得到myvalue1不同的值,並將其存儲在陣列code[]

<!doctype html> 
<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
     <script language="JavaScript" type="text/javascript" src="/js/jquery.js"></script> 
     <link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.0rc2.css" type="text/css" charset="utf-8" /> 
     <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script> 
     <script type="text/javascript" src="barcodescanner.js"></script> 
     <script type="text/javascript" src="main.js"></script> 
    </head> 

    <body> 
     <div ng-controller="controller"> 
      <table ng-repeat="result in results"> 
       <tr> 
        <td>S.No</td> 
        <td>Barcode</td> 
       </tr> 
       <tr> 
        <td>1</td> 
        <td id="d"></td> 
       </tr> 
       <tr> 
        <td>2</td> 
        <td id="code[0]"></td> 
       </tr> 
       <tr> 
        <td>3</td> 
        <td id="code[1]"></td> 
       </tr> 
       <tr> 
        <td> 
         <input class="butt" type="button" value="New Scan" onclick="scanCode();" /> 
        </td> 
       </tr> 
    </body> 
    <script type="text/javascript"> 
     var barcodeVal = localStorage.getItem("myvalue"); 
     document.getElementById("d").innerHTML = barcodeVal; 
    </script> 
    <script type="text/javascript"> 
     var scanCode = function() { 
      window.plugins.barcodeScanner.scan(

      function(result) { 

       alert("Scanned Code: " + result.text + ". Format: " + result.format + ". Cancelled: " + result.cancelled); 
       localStorage.setItem("myvalue1", result.text); 
       window.location.href = 'page5.html'; 

       var barcodeVal = localStorage.getItem("myvalue1"); 
       var test2 = localStorage.getItem("code"); 
       code = JSON.parse(test2); 
       var k = parseInt(localStorage.getItem("counter")); 

       alert(k); 

       $("#code[k]").text(barcodeVal); 

       k++; 
       localStorage["counter"] = k; 
       localStorage.setItem("code", JSON.stringify(code)); 

      }, function(error) { 
       alert("Scan failed: " + error); 
      }); 
     } 
    </script> 
    </html> 

我不知道我要去哪裏錯了,我的數組是不能在表中打印數據。 請幫忙。在此先感謝

+0

您的HTML無效。你錯過了幾個結束標籤,並且在'body'之外聲明瞭'script'。 –

+0

爲什麼我不能在'body'之外聲明'script'? – Raunak

+0

我在腳本中的代碼運行良好。只是我不知道它爲什麼不打印價值。 – Raunak

回答

0

你的jQuery選擇是錯誤的,而不是

$("#code[k]").text(barcodeVal); 

應該

$("#code["+k+"]").text(barcodeVal); 

正常工作。而我無法得到你想要做什麼的地方你正在更新陣列。我希望這有幫助。

+0

我想將數據存儲在數組''[]'中,每次我掃描一個新的條形碼時,我都試圖將計數器增加1,以便我可以單獨在數組中存儲該值。最後,我試圖使用存儲在數組中的ID在表中打印所有值。有什麼問題嗎? – Raunak

+0

你能幫我嗎?改變這也不是工作。 – Raunak

+0

@Raunak嘗試像這樣聲明數組var code = {}; –

0

你可以簡單地做到這一點如下。

function SaveDataToLocalStorage(barcodeValue) 
{ 

    var oldItems = JSON.parse(localStorage.getItem('barcodes')) || []; 
    var newItem = { 
     'barcode': barcodeValue 
    }; 
    oldItems.push(newItem); 
    localStorage.setItem('barcodes', JSON.stringify(oldItems)); 

} 
var scanCode = function() { 
     window.plugins.barcodeScanner.scan(function (result) { 
     if(result.cancelled == true) { 
      window.location.href = 'page5.html'; 
     } else { 
      // below function save your data in localstorage. 
      SaveDataToLocalStorage(result.text); 
      scanCode(); 
     } 

    }, function (error) { 
      alert("Scan failed: " + error); 
      window.location.href = 'page5.html'; 
    }); 
    }