2016-03-15 45 views
1

我需要输入具有特定产品ID的数据并将其保存到本地。点击按钮将其保存到本地存储。一个产品可以有多个文件名。输入并显示阵列作为本地存储中的对象

在客户中,如果客户给出了该ID的名称,它应该在文本区域中显示属于该ID的所有文件名。

<!DOCTYPE html> 
    <html> 
     <title>W3.CSS</title> 
      <meta name="viewport" content="width=device-width, initial-scale=1"> 
      <link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css"> 
      <script type="text/javascript"> 
       var filename = [] 
      var productid = [] 

      function managerClick(){ 
       console.log("manager", productid); 
       console.log("manager", filename); 

       productid.push(document.getElementById("productId").value); 
       filename.push(document.getElementById("names").value); 

       localStorage.setItem("filename", JSON.stringify(filename)); 
       localStorage.setItem("productid", JSON.stringify(productid)); 

       var result={} 
        productid.map(function(k){ 
        result[k]=filename; 
        }) 
        console.log(result);   

       console.log("productid",productid); 
       console.log("filename",filename);  
      }; 
       function customerClick(){ 
        console.log("Customer"); 
       document.getElementById('myTextarea').value = filename; 

      }; 
      </script> 
     <body> 
      <div class="w3-card-4 w3-margin" style="width:50%;">   
       <center>Manager</center> 

       <div class="w3-container"> 
        Product Id: <input type="text" id="productId"><br></br> 
        File Name: <input type="text" id="names"><br></br> 
        <center><button class="w3-btn w3-dark-grey" onclick="managerClick()">Data Entered</button></center><br> 
       </div> 

       <center>Customer</center> 

       <div class="w3-container"> 
        Product Id: <input type="text" id="CustomerpId"><br></br>    
        <center> 
         <button class="w3-btn w3-dark-grey" onclick="customerClick()">Click To get filename</button> 
        </center><br> 
        <textarea rows="4" cols="30"></textarea> 
       </div> 
      </div> 
     </body> 
    </html> 

我需要的是1产品可以有多个文件,但它不应该是其他产品可见。 有人能帮我做吗?产品1个&产品2的

i tryed like this and i get 

enter image description here

文件名被显示在这两种产品 产物1应具有产品1文件1,2,3 产品2应具有产品2文件1,2,3 ,4

+0

你是怎么得到这个localStorage.getItem( “myArray的”)?它似乎没有声明的名为myArray的localStorage? –

回答

0

试试这个

<script type="text/javascript"> 

    var productdetail = [] 

    function managerClick() { 

     productdetail.push({ productid: document.getElementById("productId").value, filename: document.getElementById("names").value }); 


     localStorage.setItem("ProductDetails", JSON.stringify(productdetail)); 


    }; 
    function customerClick() { 

     var prod = JSON.parse(localStorage.getItem("ProductDetails")) 
     var selectedProductID = document.getElementById("CustomerpId").value 

     for (var i = 0; i < prod.length; i++) { 
      if (prod[i].productid == selectedProductID) { 
       document.getElementById('myTextarea').value = document.getElementById('myTextarea').value +" "+prod[i].filename; 

        Console.log(prod[i].filename); 
       } 
      } 
     }; 
    </script> 

     <textarea rows="4" cols="30" id="myTextarea"></textarea> 
+1

我已经更新了我的答案。请检查一下。 –

+0

我不清楚你想实现什么。如果文件与产品ID 1关联,那么我将仅显示该产品。 –

+0

考虑productid是一个对象和文件名是一个数组,如果我选择第一个产品的文件名数组必须显示,如果我选择第二个产品的第二个产品数组应该显示,如果我在管理器中输入第一个id一个新的文件名应该被添加,并且应该显示在第一个数组ID本身不在其他地方 –