1

javascriptを使用してドロップダウンリストを作成し、MySQLデータベースからデータを取得するためにドロップダウンリストにデータを入力します。

私が抱えている問題は、ドロップダウンリストをinnerHTMLコードに配置できないことです。

これは、JSでドロップダウンリストを作成するために私が書いたものです。

var mySpan = document.getElementById('myDiv');

var myLine = document.getElementById('testcat');
myLine.value++;

// Create select
var selection = document.createElement('select');
selection.setAttribute('name',"category[]");
mySpan.appendChild(selection); 

// Create Option
createSelectOption(selection);

// Create the container
var ni = document.getElementById('myDiv');
ni.setAttribute('style', 'width:790px;');
...........
...........

次に、他のものを作成し、HTMLコードを作成するために、次を使用します。

newdiv.innerHTML = '<div class="table">.........</div>';
ni.appendChild(newdiv);

これはHTMLの一部です。

// test dropdown list
<input name="testcat" id="testcat" type="hidden" value="0" />   
<div id="myDiv"></div>

上記のコードでわかるように、ドロップダウンリストをテストしました。これ<input name="testcat" id="testcat" type="hidden" value="0" />は、HTMLで宣言すると機能します(つまり、で宣言します<body></body>)が、innerHTMLで同じコードを使用すると、FireBugは次のように通知します。 myLine.value++;"。

何か助けはありますか?

4

2 に答える 2

0

innerHTMLをテキストとして使用してIDを持つ要素を割り当てることはできません。IDはDOMに登録されません。最初に要素を作成し、それにIDを割り当ててから、その要素をDOMに配置する必要があります。

jQueryを使用すると、これが簡単になる場合があります。

var input = document.createElement("input"); 
input.id="testcat"; 
input.innerHTML = "testcat" ;
$('somediv').appendChild(input); 
于 2012-06-21T11:17:12.707 に答える
0

これは私が古いコードで行ったことです:

var selectcat = document.createElement("select");
selectcat.name = "category[]";
selectcat.options[0] = new Option("","");
selectcat.options[1] = new Option("cat1","cat1");
selectcat.options[2] = new Option("cat2","cat2");
..........
..........
selectcat.options[12] = new Option("cat1","cat12");

そして中古:

newdiv.innerHTML = '<div class="table"><ul><li><select name="category[]"><option value=""></option><option value="cat1">cat1</option><option value="cat2">cat2</option></select></li></ul></div>';

しかし今、私はMySQLデータベースから値を取得する必要があります。

だから私はこの関数を作成しました:

function createSelectOption(element)
    {
        var objSelect = ele;
        var Item = new Option("", "");
        objSelect.options[objSelect.length] = Item;
        <?
        while($categ = mysql_fetch_array($resultf_categ))
        {
        ?>
            var Item = new Option("<?=$categ["cat_name"];?>", "<?=$categ["cat_name"];?>");
            objSelect.options[objSelect.length] = Item;
        <?
        }
        ?>
    }

しかし、innerHTMLで直接使用する方法がまだわかりません。愚かな質問で申し訳ありませんが、私は本当にここで立ち往生しています。

于 2012-06-21T12:00:26.773 に答える