私はここで少し問題があります。選択ボックスを動的に作成するためにjsを使用していますが、オプションを設定するにはAjaxが必要です。これまでのところ、私のコードは未定義に戻っています。私は率直に言って、ここで何をすべきか分かりません。私のPHPは情報を返しますが、jsは解析していません。目の別のセット、または知識でいっぱいの別の脳がここで評価されるでしょう。動的に作成された選択リストを動的に取り込みます
function getSkilllist(group) {
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
return xmlhttp.responseText;
}
}
xmlhttp.open("GET","skl_lst_gen2.php?group=" + group + "&t=" + Math.random(),true);
xmlhttp.send();
}
function addInput(divName,group) {
var skillst = getSkilllist(group);
var newdiv = document.createElement('div');
newdiv.innerHTML = '<select name="ski[]">' + skillst + '</select> .....
機能の残りの部分は結構ですが、述べたようにするvar skillstは未定義戻っている、と私は理由を理解することはできません。私はそれが文字列と関係があると思いますが、何をする必要があるのか分かりません。
(通常は)Ajaxリクエストが* *非同期であるので) 'xmlhttp.send(後に'あなたの他のコードは、応答を待たずに実行を続け、その後、Ajaxリクエストからの応答があることを覚えておいてください後で処理されます。したがって、 'getSkilllist'関数は何も返さず、' skillst'は未定義ですが、あなたの他のコードは続行し、 'div'が作成されます。Ajaxレスポンスが' xmlhttp .onreadystatechange'が実行されますので、以下の答えに従って 'div'を作成する必要があります。 – nnnnnn