2017-07-16 15 views
0

以下のコードでクエリ結果を出力します。Socket.ioを選択ボックスに表示

io.on('connection', function(socket) { 
      socket.on('socketfabrika', function(fabrika) { 
      console.log(); 
      console.log("**********************************"); 
      console.log("Selected Fabrika: " + fabrika); 
      console.log("**********************************"); 
      console.log(); 

      connection.query("SELECT kumes FROM report WHERE fabrika = ? GROUP BY kumes DESC ", fabrika, function(err, rows) { 
       if (err) console.log(err); 
       else { 
       for (var i = 0; i < rows.length; i++) { 
        var row = rows[i]; 
        console.log("**********************************"); 
        console.log("Possible kumes: " + row.kumes); 
        console.log("**********************************"); 

        io.emit("sel_kumes", row.kumes); 
       } 
       } 
      }); 
      }); 
     }); 

次に、クライアント側では、私は、

<form id="form_kumes"> 
    <select multiple> 
     <option id="sel_kumes"></option> 
    </select> 
</form> 

を選択ボックスでのクエリ結果を表示しようとしている。しかし、私はボックスを選択するために、データを発するとき、それは常に側による新たな価値の側面を追加しています選択ボックスの中で、

<script type="text/javascript"> 
socket.on('sel_kumes', function(rows) { 
     console.log(rows); 
$('#sel_kumes').append($('<option></option>').text(rows)); 
}); 
</script> 

この行のためです。

$('#sel_kumes').append($('<option></option>').text(rows)); 

私は、スクリプトを変更した場合は、

<script type="text/javascript"> 
socket.on('sel_kumes', function(rows) { 
     console.log(rows); 
$('#sel_kumes').text(rows); 
}); 
</script> 

次に、選択ボックスには1つの結果しか表示されません。私は、サーバーから取得するすべての結果(質問の第一の部分)を示し、その後、新しい値が放出される場合は、選択ボックスをリフレッシュするにはどうすればよい

?(質問第二の部分)

+0

あなたは 'はconsole.log( "可能なkumes:" + row.kumes)の出力を表示することができます。 ' – wrangler

+0

出力はです。 ''可能なkumes:2''と ''可能なkumes:1'です。私はこの線で一度だけ出すことができます。 'io.emit(" sel_kumes "、row.kumes);' – ilvthsgm

+0

'io。emit()は、ループが実行された回数と同じ回数だけ発生します。あなたはどのように出力をslectボックスに表示したいですか? – wrangler

答えて

関連する問題