【发布时间】:2012-01-29 07:08:54
【问题描述】:
有一个表的字段包括添加行按钮。我是使用onchange事件从其他表调用数据,所以当我在选项框中选择一个选项时可以自动获取之前已经选择的值(do not need input the value manually).
然后我在同一个表中添加行,然后我在框选项中选择一个选项并从第一个获得不同的值,the problem is the values obtained appear in the first box, not in the second box.
对于 html 示例:
<table id="table">
<tr>
<td>No</td>
<td>Name</td>
<td>Class</td>
<td>Point</td>
<td>Action</td>
</tr>
<tr>
<td>1</td>
<td><select name="name">
<option value="#"> </option>
<?php
opendb();
$query = "SELECT * FROM student";
$result = mysql_query($query);
while($data = mysql_fetch_array($result)){
$ID = $data['ID'];
$Name = $data['Name'];
echo "<option value='$ID'>$Name</option>";
}
?>
</select>
</td>
<td><select name='class' onchange="choosepoint(this);">
<option value="#"> </option>
<?php
opendb();
$query = "SELECT * FROM student2";
$result = mysql_query($query);
while($data = mysql_fetch_array($result)){
$ID1 = $data['ID'];
$class = $data['Class'];
echo "<option value='$ID'>$class</option>";
}
?>
</select>
</td>
<td>
<div id="point" name="point"></div>
</td>
<td><input type="button" value=" + " onClick="addRowToTable();"> | <input type="button" value=" - " onClick="removeRowFromTable();"></td>
</tr>
</table>
我在找什么,我在这里发现的问题:
function choosepoint(combobox)
{
var kode = combobox.value;
if (!kode) return;
xmlhttp.open('get', '../template/get_point.php?kode='+kode, true);
xmlhttp.onreadystatechange = function() {
if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
{
document.getElementById("point").innerHTML = xmlhttp.responseText;
}
return false;
}
xmlhttp.send(null);
}
如果 ID 名称“point”更改为“point2”,则该值将出现在第二个框中,但第一个框中的值缺失。
所以我尝试循环获取 ID 名称的值为 point、point2、point3 等(取决于要添加行的数量)。
function choosepoint(combobox)
{
var kode = combobox.value;
if (!kode) return;
xmlhttp.open('get', '../template/get_point.php?kode='+kode, true);
xmlhttp.onreadystatechange = function() {
if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
{
Var tbl = document.getElementById("table");
var r = tbl.length;
var i = r;
document.getElementById("point"+ i).innerHTML = xmlhttp.responseText;
}
return false;
}
xmlhttp.send(null);
}
我得到的结果是 null 或没有值,无法运行或没有得到值为 point、point2、point3 等。 我制作的脚本有错误吗?需要大帮助m(_ _)m。
谢谢。
更新:这是为了解决问题。
function choosepoint(combobox)
{
var kode = combobox.value;
if (!kode) return;
xmlhttp.open('get', '../template/get_point.php?kode='+kode, true);
xmlhttp.onreadystatechange = function() {
if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
{
var tbl = document.getElementById("table");
var r = tbl.rows.length;
var add = document.getElementById("point"+r);
add.innerHTML = xmlhttp.responseText;
}
return false;
}
xmlhttp.send(null);
}
【问题讨论】:
-
你能把你的问题简化为一个更简单的形式吗?我无法理解你实际上在问什么。请提供简单的步骤来描述您在网页上所做的事情、调用了哪些代码以及您期望但没有得到的结果。
-
@jfriend00 好的,这是示例:(如您在表格中看到的)。否 1 我会选择 AAA 作为名称,然后选择 II 作为类,当我在类上选择 II 时,我会在 100.00 中自动获得一个点(这里会出现这个点) 没有我手动输入值(当然,如果它想要发生,可以使用 onchange)。
-
@jfriend00 那么当我想添加行时会有数字 2 对吗?所以No 2我会选择BBB作为名字,选择III作为班级,然后当我在班级选择III时,我得到的点会出现在 80.00(这里)。有两个不同点的数据,100.00 和 80.00 分别代表 1 号和 2 号。Nuh,我的问题和问题是 2 号包含的结果点,是 80.00 它不完全出现在第 2 位,但它确实出现在第 1 位。因为我们知道我们在第 1 位得到的点是 100.00。那么如何解决每个数据或数字都有自己的点呢?
-
@jfriend00 希望你明白我的意思!
标签: php javascript onchange xmlhttprequest