Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/06/2010, 14:42
dicaraso
 
Fecha de Ingreso: septiembre-2008
Mensajes: 15
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Llenar un select desde BD y a su vez ingresar o eliminar Selects

Te aconsejo que uses xajax es muy sencillo... aqui te envio el ejemplo de algo sencillo que creo te sirve
Cita:
<?php
require ('../xajax_core/xajax.inc.php');
$xajax = new xajax();
$xajax->configure('javascript URI', '../');


/**
* Metodo fc_producto xajax para mostrar un select con la informacion del Producto (Codigo concatenada con el nombre)
*consultando a la base de datos, para traer dinamicamente un producto que se digita en un TEXT
**/
function fc_producto($pro)
{
$objResponse = new xajaxResponse();


$link=mysql_connect("localhost", "root", "");
mysql_select_db("aluminio",$link); // conexion a la base de datos ALUMINIO
$sql = "SELECT codpro, despro FROM producto WHERE codpro LIKE '%$pro%' OR despro LIKE '%$pro%'"; // Consulta para traer los productos de la busqueda
$result = mysql_query($sql,$link); //Metodo de mysql para traer los resultados de la anterior consulta
$campo_validacion .= "<select name ='cod_producto' id='cod_producto' onChange=\"xajax_fc_materiaprima(xajax.$('cod_prod ucto').value)\" >"; //Select con evento javascript llamado Onchange (traduce al cambiar) que llama a metodo xajax

// ciclo que controla las opciones del select con los valores de la consulta dinamica
while ($row = mysql_fetch_array($result))

{
$campo_validacion .= "<option value=".$row[codpro].">".$row[codpro]." - ".$row[despro]."</option>";
}
$campo_validacion .= '</selection>'; // Fin del select
$objResponse ->assign('div1', 'innerHTML', $campo_validacion); // Envio resultado osea el select dinamico en la division con nombre DIV1
@mysql_close($link); // se cierra la Base de datos
return $objResponse; // Retorno de resultado o Objeto
}


/**
*Metodo fc_materiaprima xajax para consultar toda la materia prima de un producto seleccionado en el anterior select
* */

function fc_materiaprima($d)
{
$objResponse = new xajaxResponse();


$link=mysql_connect("localhost", "root", "");
mysql_select_db("aluminio",$link);
$sql = "SELECT mapri.codmatpri,mapri.desmatpri FROM despiece des
JOIN materia_prima mapri ON (des.matdes= mapri.codmatpri)
WHERE des.prodes='$d'";

$result = mysql_query($sql,$link);
$cantidad=count($row = mysql_fetch_array($result));
$campo_color .= "Seleccione Materia Prima :<Select name='materia_prima[]' id='materia_prima' multiple size='".$cantidad."'>";

while ($row = mysql_fetch_array($result))

{
$campo_color .= "<option value=".$row[codmatpri].">".$row[codmatpri]." - ".$row[desmatpri]."</option>";
}
$campo_color .= '</selection>';
$objResponse->assign('divcolor', 'innerHTML', $campo_color);
@mysql_close($link);

return $objResponse;

}



$reqfc_productoMixed =& $xajax->registerFunction('fc_producto');
$reqfc_productoMixed->setParameter(0, XAJAX_INPUT_VALUE, 'producto');

$reqfc_materiaprima=& $xajax->registerFunction('fc_materiaprima');
$reqfc_materiaprima->setParameter(0, XAJAX_INPUT_VALUE, 'cod_producto');

$xajax->processRequest();

echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Productos</title>
<?php
$xajax->printJavascript();
?>
<script type='text/javascript'>

</script>
</head>
<body style="text-align:center;">
<CENTER>
CONSULTAR PRECIO
<hr>
</CENTER>
<center>
<table aling="center" border="1">
<tr>
<td>
<FORM name="frmproducto" method="POST" action='productos.php?'>
<table align='center'>
<tr><b>
<td><b>Seleccione el producto:</b></td>
<td><input type ='text' name = 'producto' id='producto' onKeyUp = '<?php $reqfc_productoMixed->printScript();?>'></td>
<td><div id="div1"></div></td>
<td><b><div id='divcolor'></div></b></td>
</tr>
<tr>
<td><b>Color</b></td>
<td>
<?php
$link=mysql_connect("localhost", "root", "");
mysql_select_db("aluminio",$link);
$sql = "SELECT codcol,descol FROM color";
$result = mysql_query($sql,$link);

echo"<Select name='color_producto' id='color_producto'>";
while ($row = mysql_fetch_array($result))
{
echo "<option value=".$row[codcol].">".$row[codcol]." - ".$row[descol]."</option>";
}
echo"</selection>";
@mysql_close($link);
?>
<td><b>Alto</b><input type='TEXT' name='alto_producto'></td>
<td><b>Ancho</b><input type 'TEXT' name='ancho_producto'></td></b>
</tr>
</table>
<table align='center'>
<tr>
<td><button type="submmit">Calcular</button></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</center>
</body>
</html>


<?php

if($_POST['producto'] != "" ){
/*
echo "<pre>";
print_r($_POST);
echo "<pre>";
*/
$materia=$_POST['materia_prima'];
$producto=$_POST['cod_producto'];
$color = $_POST['color_producto'];
$cad_materia ="";

for ($i=0;$i<count($materia);$i++)
{
if($i+1<count($materia)){
$cad_materia .="'".$materia[$i]."',";
}
else{
$cad_materia .="'".$materia[$i]."'";
}

}



$link=mysql_connect("localhost", "root", "");
mysql_select_db("aluminio",$link);
$sql = "SELECT SUM(pre.pretir) AS pretir FROM producto pro JOIN despiece des ON ( pro.codpro=des.prodes)
JOIN materia_prima mapri ON (des.matdes= mapri.codmatpri)
JOIN precio pre ON (pre.codmat=mapri.codmatpri) JOIN color color ON (color.codcol = pre.colpre)
WHERE pro.codpro = '$producto' and pre.colpre='$color' and mapri.codmatpri IN ($cad_materia)";
$result = mysql_query($sql,$link);
$row = mysql_fetch_array($result);
@mysql_close($link);


echo "Producto Calculado:";
echo "<table align='center' border ='1'>
<tr>
<td>Precio:</td>
<td>
<input type='TEXT' name='precio' id='precio' value=".$row[pretir].">
</td>
</tr>
</table>";

}
?>
esto es un ejemplo de un ejercicio, usar xajax es muy sencillo lo puedes descargar de [URL="http://www.xajaxproject.org/"]http://www.xajaxproject.org/[/URL]