2017-11-29 16 views
0

こんにちは仲間のプログラマー、私は入力フィールドとSelectListので、ユーザーが入力することができ、ダイナミックのTableRowを作成しようとしています現時点では選択リストが表示されないのはなぜですか?

(ので、ユーザはそのTD-ためで埋めるために、これらのオプションを選択することができます細胞)。入力フィールドは同じように動作しますが、td内の選択リストは何とか表示されません。私は、コンソールをチェックし、エラーはありません。..ここに私のコードです:

//2 lists to loop through and get the right classname for the inputfields (for later use) 
var camera_idcolumns = ['idkolom','merkkolom','typekolom','modelkolom','ipkolom','mackolom','usernamekolom','passwordkolom','bijzonderhedenkolom']; 
var camera_idvelden = ['idveld','merkveld','typeveld','modelveld','ipveld','macveld','usernameveld','passwordveld','bijzonderhedenveld']; 


rijToevoegen(camera_idcolumns, camera_idvelden, "camera"); 

//the function that adds the dynamic row to be filled in by the user. 
function rijToevoegen(columnarray, fieldarray, tabelnaam){ 
    var columns = columnarray; 
    var fields = fieldarray; 
    var row = '<tr>'; 
    for(i=0;i<columns.length;i++){ 
     if(i==0){ 
      continue; 
     } else if (i == 1) { 
      var lijstnaam = "testlijst"; 
      $.ajax({ 
       type: "POST", 
       url: "../logic/getlijst.php", 
       data: {lijstnaam: lijstnaam}, 
       success: function(data) { 
        var response = JSON.parse(data); 
        row += "<td class="+columns[i]+"><select id='selectlijst'>"; 
        for(i=0;i<response.length;i++){ 
         row += "<option value="+response[i]['itemnaam']+">"+response[i]['itemnaam']+"</option>"; 
        } 
        row += "</select></td>"; 
       } 
      }); 
      continue; 
     } else{ 
      row += "<td class="+columns[i]+"><input type='text' id="+fields[i]+"></td>"; 
     } 
    } 
    row += '</tr>'; 
    $(tabelnaam).append(row); 

} 

AJAX呼び出しからの応答がSelectListのを含めるべき項目とArrayListのです。私はすべてのことを正しく行ったように感じますが、それでもブラウザーには表示されません(ブラウザーの要素でそれを調べている間ではありません)。

ご協力いただきありがとうございます。

答えて

1

このスニペット:あなたのAJAX呼び出しが完了すると、実際にその変数を移入するコードを実行する前に

row += '</tr>'; 
$(tabelnaam).append(row); 

が実行されています。そのコードが(非同期、忘れないでください)ajax呼び出しの結果に依存している場合は、それを「成功」関数に移動します。

+0

オハイオ州の神私はあなたが完全に正しいと思う..それはループが終了した場合にのみループを続けることが可能ですか?私は完全を知っています:function(){continue; }コードを壊すので、どうすればこの問題を解決できますか? –

+0

できません。ループは1つのスレッドにあり、ajaxは別のスレッドにあります。残念ながら、この少しのコードを最終的な "else"にコピーする必要があります。または、ループなしで再構築し、 "success"関数からプロセスの次の段階を開始するだけです。 – ADyson

+1

私は私が何をするかを見て、私を助けて、とても明確に説明してくれてありがとう!歓声:) –

関連する問題