用填充的下拉列表复制php表的新行
Duplicating new row of php table with populated dropdown list
我正在尝试创建一个新行php表,其中包含两个填充的下拉列表。一行中有三列,其中两列已经填充了下拉列表,如果我从其中选择一个数据,另一个下拉列表将根据我选择的内容自动填充。
我曾试图创建一个新行,但问题是,每当我从任何行的第一个下拉列表中选择时,只有表第一行的第二个下拉列表在更改。我不能让第二个下拉列表的每一行都像从第一个下拉列表中选择时一样工作,同一行列表上的第二个列表会被填充。
这是代码:
addrecipe.php
<script type="text/javascript">
function show(str) {
if (str=="") {
document.getElementById("productn").innerHTML="";
return;
}
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) {
document.getElementById("productn").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","pname.php?q="+str,true);
xmlhttp.send();
}
</script>
<script type="text/javascript">
function myCreateFunction() {
var i = 10;
var ii = 10;
var iii = 10;
if (i <= 20){
i++;
ii++;
iii++;
var table = document.getElementById("table");
var row = table.insertRow(11);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML =
'<select name="product_'+i+'" id="product" onchange="show(this.value)">
<option value="">Select...</option>
<?php $sql = mysql_query("SELECT * FROM prodcat");
while ($row = mysql_fetch_array($sql)) {
echo '<option value="'.$row['catID'].'">'.$row['prodCat'].'</option>'; }
?>
</select>';
cell2.innerHTML =
'<select name="productn_'+ii+'" id="productn">
<option value="">Select...</option>
<?php $sql1 = mysql_query("SELECT * FROM product");
while($row1=mysql_fetch_array($sql1)) {
echo '<option value="'.$row1['IngID'].'">'.$row1['IngName'].'</option>'; }
?>
</select>';
cell3.innerHTML = '<input class="style" type="text" name="qty_'+iii+'" id="qty">';
}
}
</script>
<tr>
<td>
<select name="product_1[]" id="product" onchange="show(this.value)">
<option value="">Select...</option>
<?php
$sql = mysql_query("SELECT * FROM prodcat");
while ($row = mysql_fetch_array($sql)){
echo '<option value="'.$row['catID'].'">'.$row['prodCat'].'</option>';
}
?>
</select>
</td>
<td>
<select name="productn_1[]" id="productn">
<option value="">Select...</option><?php
$sql1 = mysql_query("SELECT * FROM product");
while($row1=mysql_fetch_array($sql1))
{
echo '<option value="'.$row1['IngID'].'">'.$row1['IngName'].'</option>';
}?>
</select>
</td>
<td>
<input class="style" type="text" name="qty_1[]" id="qty">
</td>
</tr>
pname.php
$q = intval($_GET['q']);
mysql_connect("$host", "$username", "$password") or die ("cannot connect");
mysql_select_db("$db_name") or die ("cannot select DB");
$sql = mysql_query("SELECT * FROM product WHERE catID='$q'");
while($row=mysql_fetch_array($sql))
{
echo '<option value="'.$row['IngID'].'">'.$row['IngName'].'</option>';
}
首先为示例的所有下拉列表设置动态id
function myCreateFunction() {
var i = 10;
if (i <= 20){
i++;
var table = document.getElementById("table");
var row = table.insertRow(11);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
cell1.innerHTML = '<select name="productCategory_'+i+'" id="productCategory_'+i+'" onchange="setProducts(this.value,this.id)">
<option value="">Select...</option>
<?php $sql = mysql_query("SELECT * FROM prodcat");
while ($row = mysql_fetch_array($sql)) {
echo '<option value="'.$row['catID'].'">'.$row['prodCat'].'</option>'; }
?>
</select>';
cell2.innerHTML = '<select name="productn_'+i+'" id="productn_'+i+'`enter code here`">
<option value="">Select...</option>
<?php $sql1 = mysql_query("SELECT * FROM product");
while($row1=mysql_fetch_array($sql1)) {
echo '<option value="'.$row1['IngID'].'">'.$row1['IngName'].'</option>'; }
?>
</select>';
cell3.innerHTML = '<input class="style" type="text" name="qty_'+iii+'" id="qty_'+iii+'">';
}
}
function setProducts(value,id){ id = id.split("_")[1];
// Here Assign Some Value by using this id
// document.getElementById('productn_'+i) to get partiicular row dropdown
}
`
在这里,你应该用不同的id来命名选择框,这样我们就可以很容易地调用特定的行。。
相关文章:
- 如何从rails中的代码中删除新行( )
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何在脚本上添加新行
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- 字符串中的
标记未正确在 HTML 中创建新行 - JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 反应中的新行
- 阻止ReSharper将JavaScript函数参数放到新行中
- HTML表内容:如果行很长,如何在新行中显示部分内容
- dhtmlx添加新行并启动单元格编辑器
- 如何转义php中的新行字符以输出为javascript字符串值
- 将新行从 PHP 替换为 JavaScript
- 在 Javascript 警报框中的新行上显示 PHP 数组的每个条目
- 用填充的下拉列表复制php表的新行
- 输入区域中出现PHP错误的新行
- 动态插入新行使用javascript,但如何保存这些多行在php/mysql
- Textarea在PHP中不计算新行
- 在php循环中编写javascript数组时,如何将新行转换为实际行
- 如何让PHP回显“; 〃;作为javascript的纯文本,并且不具有" 〃;创建一条新行
- jQuery通过PHP将新行附加到UL LI