javascript
  • arrays
  • smarty
  • 2017-04-25 10 views 0 likes 
    0

    JS配列を外部スクリプトに転送するにはどうすればよいですか?JS配列を外部スクリプトに転送する方法

    <li onclick='myfunction("{myarray}")'>TRANSFER</li> 
    

    externalscript.jsが見えます: 私はSmartyの配列{} myarrayのこのコードを持っている

    function myfunction(myarray) 
    { 
        var content = '<table class="table-data-sheet" id="table">'; 
        {foreach $myarray key=k item=f} 
        content +='<tr>'; 
        content += '<td>' + "{$k}" + '</td>' + '<td>' + "{$f}" + '</td>'; 
        content += '</tr>'; 
        {/foreach} 
        content += '</table>'; 
        document.getElementById("table").innerHTML = content; 
    } 
    

    しかし、その動作していません。どうしてか分かりません。 変数は転送できますが、配列は転送できません。

    +0

    普通の文字列 "{myarray}"を送信しているようですが、二重引用符を使わずに{myarray}を送信したことがありますか? – randomguy04

    答えて

    0

    あなたが値の配列ではなく、キー値の構造を持っているならば、あなたは多分これを行うことができ、アレイ

    <li onclick="myfunction({$myarray|@json_encode nofilter})">Transfer</li> 
    

    をjson_encodeとJS

    にオブジェクトとして
    function myfunction(myObj) { 
        var tableElement = document.createElement('table'); 
        tableElement.id = 'tableid'; 
        tableElement.className = 'table-data-sheet'; 
        var content = ''; 
        var valueKeys = Object.keys(myObj); 
        for(var i=0;i<valueKeys.length;i++){ 
         content +='<tr><td>'+valueKeys[i]+'</td><td>'+myObj[valueKeys[i]]+'</td></tr>'; 
        } 
        tableElement.innerHTML = content; 
        document.getElementById("tabledivid").appendChild(tableElement); 
    } 
    

    を、それを使用することができます

    implode(', ', $fruit) 
    

    と使用の引数はJS

    内のオブジェクト
    function myfunction() { 
        var tableElement = document.createElement('table'); 
        tableElement.id = 'tableid'; 
        tableElement.className = 'table-data-sheet'; 
        var content = ''; 
        for(var i=0;i<arguments.length;i++){ 
         content +='<tr><td>'+i+'</td><td>'+arguments[i]+'</td></tr>'; 
        } 
        tableElement.innerHTML = content; 
        document.getElementById("tabledivid").appendChild(tableElement); 
    } 
    
    関連する問題