У меня есть таблица, которая содержит элементы, подобные приведенному ниже коду:
<table border="1" bordercolor="#7695CC" id="table2">
<tr>
<td class="tablesubtitle" align="center">No</td>
<td class="tablesubtitle" align="center">Name Component</td>
<td class="tablesubtitle" align="center">Name child Component</td>
<td class="tablesubtitle" align="center"Point</td>
<td class="tablesubtitle" align="center">Action</td>
</tr>
<tr>
<td>1</td>
<td><select name="component" onChange="NameComponent(this);">
<option value="#"> </option>
<?php
opendb();
$query = "SELECT * FROM componentone";
$result = mysql_query($query);
while($data = mysql_fetch_array($result)){
$ID = $data['ID'];
$name = $data['Component'];
echo "<option value='$ID'>$name</option>";
}
?>
</select>
</td>
<td><div id='childcomponent'><select>
<option value="#"></option>
</select>
</div>
</td>
<td align="center"><a href="result_point.php?menu_id=<?=$menu_id?>">0</a></td>
<td align="center"><input type="button" value=" + " onClick="addRowToTable();"> | <input type="button" value=" - " onClick="removeRowFromTable();"></td>
</tr>
</table>
Если вы видите там функцию onChange, она предназначена для вызова результатов данных из базы данных для отображения результатов (см. Элемент div) <div id='childcomponent'>
после выбора одного из параметров в имени компонента <select name="component">
. Эти два элемента связаны между собой.
function NameComponent(combobox)
{
var code = combobox.value;
if (!code) return;
xmlhttp.open('get', '../template/get_component_name-opr.php?code='+code, true);
xmlhttp.onreadystatechange = function() {
if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
{
document.getElementById("childcomponent").innerHTML = xmlhttp.responseText;
}
return false;
}
xmlhttp.send(null);
}
Пример: № 1, имя компонента, которое я выбираю - AAA, этот AAA имеет три дочерних компонента, AAA1 AAA2 AAA3. После того, как я выбрал AAA, три дочерних компонента (AAA1, AAA2 и AAA3) будут отображаться автоматически.
Это код, когда я вызываю данные результатов для отображения на <div id='childcomponent'>
:
<?php
include ("config.php");
include ("dbfunctions.php");
echo "<script language=\"JavaScript\" src=\"js/form_validation.js\"></script>";
echo "<select name='child_component'>";
echo "<option value=\"\"> </option>";
opendb();
$query = "SELECT * FROM childcomponent WHERE ID='$_GET[code]' ";
$result = querydb($query);
while ($data = mysql_fetch_array($result))
{
echo "<option value='".$data['ID']."'>".$data['childcomponent_name']."</option>";
}
echo "</select>";
?>
В действии я хотел добавить строки и удалить строки.
Это код с использованием Javascript для добавления строк:
<script language="Javascript">
function addRowToTable()
{
var tbl = document.getElementById('table2');
var lastRow = tbl.rows.length;
var iteration = lastRow;
var row = tbl.insertRow(lastRow);
// left cell
var cellLeft = row.insertCell(0);
var textNode = document.createTextNode(iteration);
cellLeft.appendChild(textNode);
// right cell
var cellRightSel1 = row.insertCell(1);
var sel = document.createElement('select');
sel.name = 'component' + iteration;
cellRightSel1.appendChild(sel);
// select cell
var cellRightSel2 = row.insertCell(2);
var sel = document.createElement('select');
sel.id = 'childcomponent' + iteration;
sel.options[0] = new Option('','');
sel.options[1] = new Option('', '');
cellRightSel2.appendChild(sel);
var cellRight = row.insertCell(3);
var el = document.createElement('input');
cellRight.appendChild(el);
}
<script>
Моя проблема здесь в том, что когда я добавляю строку, у номера два нет параметров, которые я могу выбрать в имени компонента.
Вопрос в том, как вызвать данные из базы данных в javascript?
Вызов базы данных отсюда, возможно?
var cellRightSel2 = row.insertCell(2);
var sel = document.createElement('select');
sel.id = 'childcomponent' + iteration;
**sel.options[0] = new Option('','');
sel.options[1] = new Option('', '');**
cellRightSel2.appendChild(sel);
Заранее спасибо.