我有一个"添加语句"按钮,每次单击该按钮后,我都需要在页面上显示一个<select>
标记(不刷新页面)。这是Select的代码:
<select id = "statement" name = "statement">
<?php
$select = "SELECT name FROM Statements";
$res = $conn->query($select);
while($row = $res->fetch_assoc()){
echo "<option value='"" . $row['name'] . "'">" . $row['name'] . "</option>";
}
?>
</select>
我该怎么做?
使用ELEMENT.cloneNode(true)
克隆元素,使用true
也克隆子节点:
var selectionCounter = 0
function cloneSelect() {
var select = document.getElementById("statement")
var clone = select.cloneNode(true)
var name = select.getAttribute("name") + selectionCounter++
clone.id = name
clone.setAttribute("name", name)
document.getElementById("selectContainer").appendChild(clone)
}
<div id="selectContainer">
<select id="statement" name="statement">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
</div>
<button onclick="cloneSelect()">Add another Select</button>
有关node.cloneNode(deep)
的更多信息,请点击此处:https://developer.mozilla.org/en/docs/Web/API/Node/cloneNode
我认为它会对你有所帮助-
<script>
function addOption(){
var sel = document.getElementById("statement");
var option = document.createElement("option");
option.innerHTML = "name";
option.value = "1";
sel.appendChild(option);
}
</script>
试试这个。它可能会对你有所帮助。
<!DOCTYPE html>
<html>
<head></head>
<body>
<div id="container"></div>
<button type="button" id="add" onclick="addOption()">Add a statement</button>
<?php
$que = mysql_query("SELECT name FROM Statements") or die(mysql_error());
$script = "<script>function addOption(){";
$script .= "var container = document.getElementById('container');";
$script .= "var select = document.createElement('select');";
while($data = mysql_fetch_array($que)){
$script .= "var option = document.createElement('option');";
$script .= "option.innerHTML = '$data[0]';";
$script .= "select.appendChild(option);";
}
$script .= "container.appendChild(select);";
$script .= "}</script>";
echo $script;
?>
</body>
</html>