Foros del Web » Programando para Internet » PHP »

Llenar un select desde BD y a su vez ingresar o eliminar Selects

Estas en el tema de Llenar un select desde BD y a su vez ingresar o eliminar Selects en el foro de PHP en Foros del Web. Buenos Dias Mi problema es el siguiente tengo un formulario que presentar tipos de ayudas en 3 select ahora me solicitaron que el usuario ingrese ...
  #1 (permalink)  
Antiguo 02/06/2010, 13:26
 
Fecha de Ingreso: febrero-2010
Mensajes: 6
Antigüedad: 14 años, 8 meses
Puntos: 0
Llenar un select desde BD y a su vez ingresar o eliminar Selects

Buenos Dias

Mi problema es el siguiente tengo un formulario que presentar tipos de ayudas en 3 select ahora me solicitaron que el usuario ingrese o elimine el numero de selects , este select se llena desde la Base de Datos , tengo un codigo que crea y elimina los select en Java Script el problema es el enlace a la BD que debe tener select , se que Js trabaja del lado del usuario por eso a colocar <?php ?> no los procesa , me puede aconsejar de que otra manera pueda hacer esto , o que cambios debo hacerle al codigo.

De antemano Gracias por Responder.

Anexo el Codigo :

registro_atendido.js

var arrInput = new Array(0);
var arrInputValue = new Array(0);


function addInput()
{
arrInput.push(arrInput.length);
arrInputValue.push("");
display();
}

function display()
{
document.getElementById('nuevoInput').innerHTML="" ;
for (intI=0;intI<arrInput.length;intI++)
{
document.getElementById('nuevoInput').innerHTML+=c reateInput(arrInput[intI], arrInputValue[intI]);
}
}

function saveValue(intId,strValue)
{
arrInputValue[intId]=strValue;
}



function createInput(id,value)
{



//"<input type='text' id='test "+ id +"' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><br>";



return " <?php $ayudas."+ id +" = $obj_principal->consulta_ayuda(); ?>
<select name="ayudas"+ id +"" id="ayudas"+ id +"" <?php echo $ayudas"+ id +" ?>>

<?php
do{
?>
<option value="<?php echo $ayudas"+ id +"['fila']['codigo_ayuda']; ?>"> <?php echo $ayudas"+ id +"['fila']['nombre_ayu']; ?></option>
<?php
} while ($ayudas"+ id +"['fila'] = $obj_principal->io_conexiones->fetch_row($ayudas"+ id +"['rs']));
?>
<option value="0"> </option>
</select>
</select>";



}


function deleteInput()
{
if (arrInput.length > 0)
{
arrInput.pop();
arrInputValue.pop();
}
display();
}


registro_atendido.php

<table width="328">
<tr>
<td width="124">
<label class="desc">Tipo de Ayuda</label></td>
<td width="102" align="center"><a href="javascript:addInput();"><img src="http://www.forosdelweb.com/f18/images/Plus__Orange.png" align="center" alt="Buscar" width="25" height="25" border="0" title="Agregar Ayuda" /></a></td>
<td width="102" align="center">
<a href="javascript:deleteInput();"><img src="http://www.forosdelweb.com/f18/images/1275062198_button_cancel.png" align="center" alt="Buscar" width="25" height="25" border="0" title="Eliminar Ayuda" /></a> </td>
</tr>
<tr>
<td> </td>
<td align="center">
<label>Agregar Ayuda</label> </td>
<td align="center">
<label>Eliminar Ayuda</label> </td>
</tr>
<tr>
<td id="nuevoInput" colspan="5">&nbsp;</td>
</tr>
</table>

Última edición por Esther16; 02/06/2010 a las 13:32
  #2 (permalink)  
Antiguo 02/06/2010, 14:42
 
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]

Etiquetas: bd, eliminar, ingresar, llenar, select, selects
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:14.