Manejo listas vinculadas en HTML, en la primera lista el usuario deberá seleccionar un tipo de documento (Factura, Garantía, Cotización etc), entonces en la segunda lista, dependiendo de que tipo de documento se elija, en esta lista deberán aparecer el numero de folio de cada documento, todo esto desde una base de datos. Bueno esa parte ya la tengo; leo los documento desde la BD para crear mi form tipo select, y ademas una función para activar y crear el segundo select...
Primer select:
Código:
Bueno ahi obtengo el nombre de los documentos, ahora para crear el segundo select tengo la funcion ComponerLista, el cual es un javascript: <select name="Documento" id="Documento" onchange="ComponerLista(this.value)"> <?php $query2="Select * From Documento Order By Nombre ASC"; $result2=mysql_query($query2); while ($documento=mysql_fetch_array($result2)) { ?> <option value = " <?php echo $documento['Nombre']; ?> "><?php echo $documento['Nombre']; ?></option> <? } ?> </select>
Código:
Bueno en esta es para el manejo de los form (para que se active y desactive), a su vez se tiene el funcion de CargarFolio y bueno se envia como paremetro el nombre de documento....<script language="javascript"> function ComponerLista(documento) { document.forms.AgrDatos.Documento.disabled = true; document.forms.AgrDatos.Folio.length = 0; CargarFolio(documento); document.forms.AgrDatos.Documento.disabled = false; } </script>
En la segunda funcion:
Código:
En esta función es donde se crea la segunda lista, aquí el problema y la duda. Primeramente convierto el nombre del documento en una variable dentro del script para que posteriormente dentro del código php lo pueda obtener:function CargarFolio(xdocumento) { var o document.forms.AgrDatos.Folio.disabled=true; var tabla=xdocumento; <?php $table = "document.write(tabla)"; //echo $table; $tablaFolio = mysql_query("SELECT Folio FROM $table ORDER BY Folio ASC"); while ($folio = mysql_fetch_array($tablaFolio)) { ?> o = document.createElement("OPTION"); o.text = '<?php echo $folio["Folio"];?>'; o.value = <?php echo $folio["Folio"];?>; document.forms.AgrDatos.Folio.options.add(o); <?php } mysql_free_result($tablaFolio); ?> document.forms.AgrDatos.Folio.disabled=false; }
Código:
Y bueno para verificar si esto es correcto hice un echo:var tabla=xdocumento; //Convierto variable en el script $table = "document.write(tabla)"; //ya dentro de php convierto esa variable en una variable de php
Código:
Y si funciona. Me muestra el nombre del documento que se eligió.echo $table;
Asta ahí todo bien, el problema surge cuando quiero pasar esa variable $table a la sentencia SELECT de mysql:
Código:
No sucede nada, no se pasa esa variable y bueno ya lo que sigue no funciona... También provee con$tablaFolio = mysql_query("SELECT Folio FROM $table ORDER BY Folio ASC");
Código:
Y bueno no se en donde tenga el error, ya que si en mi SELECT, le pongo directamente el nombre del documento, el cual es igual el nombre de la tabla si me rellena la segunda lista (select) y todo bien... por ejemplo$tablaFolio = mysql_query("SELECT Folio FROM '.$table.' ORDER BY Folio ASC"); $tablaFolio = mysql_query("SELECT Folio FROM $table ORDER BY Folio ASC;"); $tablaFolio = mysql_query('SELECT Folio FROM '$table' ORDER BY Folio ASC');
Código:
ya todo jala bien, me muestra los numero de folio que se tienen guardados en la lista html pero no cuando le pongo la variable $table.$tablaFolio = mysql_query("SELECT Folio FROM Factura ORDER BY Folio ASC");
No se en que este mal.