Estoy haciendo unas pruebas, luego te comento como me fue, y te paso el dato si es satisfactorio, pero ya genero las filas, y tengo pensado hacer la consulta de categorias por ajax.
Cuando escoga una opcion del primer combo enviarla tambn por ajax y desplegar el segundo.
Saludos
Editado:
He terminado la prueba y salio supoer satisfactoria.
Aqui te dejo el codigo!
Este es el HTML, donde esta la tabla inicial y funciones javascript
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}//Funcion Desarrollada por Jesus Liñán [email protected] ribosomatic.com
function enviarDatos(celda, destino, id)
{
cadenaFormulario='id='+encodeURI(id);
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod POST
//archivo que realizará la operacion
//registro.php
ajax.open("POST", destino, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
celda.appendChild(document.createTextNode('espere...'));
celda.innerHTML=ajax.responseText;
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send(cadenaFormulario);
}
function cargaProd(divResul, destino, id)
{
divResultado = document.getElementById(divResul);
divResultado.innerHTML="<center>Cargando ...</center>";
cadenaFormulario='id='+encodeURI(id);
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod POST
//archivo que realizará la operacion
//registro.php
ajax.open("POST", destino, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText;
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send(cadenaFormulario);
}
function addNewRow(id){
var tbody = document.getElementById(id).getElementsByTagName("TBODY")[0];
var row = document.createElement("TR")
numRow=document.getElementById(id).rows.length;
var td1 = document.createElement("TD")
enviarDatos(td1,'combo1.php', numRow);
var td2 = document.createElement("TD")
cadena='<div id="prod_'+numRow+'"></div>';
td2.appendChild (document.createTextNode("espere..."))
td2.innerHTML=cadena;
row.appendChild(td1);
row.appendChild(td2);
tbody.appendChild(row);
}
</script>
</head>
<body>
<form name="productos" id="productos">
<table id="prod" width="50%" border="1">
<tr>
<td>Categoria</td>
<td>Producto</td>
</tr>
<tbody>
<tr>
<td>Combo 1</td>
<td>Combo 2</td>
</tr>
<tr>
<td>Combo 1</td>
<td>Combo 2</td>
</tr>
<tr>
<td>Combo 1</td>
<td>Combo 2</td>
</tr>
</tbody>
</table>
<input type="button" onclick="addNewRow('prod');" value="Generar Fila" />
</form>
</body>
</html>
Esta es la consulta para el primer combo
Código PHP:
<?php
include('conect.php');
$link=Conectarse();
//variables POST
$id=$_POST['id'];
$sql="select * from categorias";
$resCons=mysql_query($sql);
$cadena="<select name=\"categoria_".$id."\" onchange=\"cargaProd('prod_".$id."', 'combo2.php', this.value)\">";
while($row=mysql_fetch_array($resCons))
{
$cadena.="<option value='".$row['id']."'>".$row['nombre']."</option>";
}
$cadena.='</select>';
echo $cadena;
?>
Esta es la consulta para el segundo combo
Código PHP:
<?php
include('conect.php');
$link=Conectarse();
//variables POST
$id=$_POST['id'];
$sql="select * from productos where categoria='".$id."'";
$resCons=mysql_query($sql);
$cadena="<select name=\"produc_".$id."\">";
while($row=mysql_fetch_array($resCons))
{
$cadena.="<option value='".$row['id']."'>".$row['nombre']."</option>";
}
$cadena.='</select>';
echo $cadena;
?>
cabe destacar que la prueba la hice con una DB de prueba, con esta estructura.
tabla categorias: nombre, id
tabla productos: id, nombre, categoria.
Saludos Ojala te sirva!
A mi me funciona de maravilla compañer@.