PHP - cargar un listbox (<Select>) a partir de otr

 
Vista:

cargar un listbox (<Select>) a partir de otr

Publicado por Didi (13 intervenciones) el 06/11/2007 13:27:19
Holas!!!

Tengo el siguiente problema:

Estoy haciendo un sistema desarrollado en PHP con MySQL(Por cierto la primera vez que me meto con esto). Tengo un ListBox, Cuadro Lista o <Select>, como le quieran llamar, que se llena a partir de una consulta que hago a la base de datos, es el siguiente código:

-----este es el primer List------
<select name="slc_country" size="1" id="slc_country" onChange="countrySelected()">
<?php
$query="select * from tbl_country";
$resultado=mysql_query($query,$link);
$total=mysql_num_rows($resultado);
for ($i=0;$i<$total;$i++){
$pais=mysql_result($resultado,$i,"NAME_COUNTRY");
echo"<option value=$i>$pais</option>";
}
?>
</select>

El Segundo list debería llenarse según la opción que escogí en el primer list:

-----este es el segundo List------

<?php
$query_customer="select NAME_CUSTOMER from tbl_country_customer_sdm where NAME_COUNTRY= $_POST["slc_country"]";
$resultado_customer=mysql_query($query_customer,$link);
$total_customer=mysql_num_rows($resultado_customer);
for ($k=0;$k<$total_customer;$k++){
$customer=mysql_result($resultado_customer,$k,"NAME_CUSTOMER");
echo"<option value=$k>$customer</option>";
}
?>

Según lo que he entendido para que esto suceda debo llamar una función javascript desde el list box 1 en su evento on chage, y efectivamente eso es lo que hago, por lo tanto la función exchange es la siguiente:

function countrySelected()
{
window.document.form1.action ="search.php";
window.document.form1.submit();
return true;
}

Yo no sé si es porque en el query del 2do list box coloco $_POST["slc_country"] y como aún no he presionado ningún boton submit no me está tomando el valor de lo que tiene el listbox1 seleccionado, aunque no debería porque se supone que en la función javascript se está haciendo el submit.

Por favor ayudenme de verdad necesito esto urgente y como apenas me estoy metiendo con PHP no se bien que es lo que pueda estar pasando.

Otra cosa el PHP no me está mostrando los mensajes de error solo me muestra la pantalla blanca. Ayudenme se los agradecería muchísimo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cargar un listbox (<Select>) a partir de

Publicado por JM (48 intervenciones) el 06/11/2007 13:54:29
Hola Didi,

yo diria que tu problema está en el $_POST["slc_country"], concretamente en las comillas dobles.

Prueba así:

NAME_COUNTRY= '".$_POST["slc_country"]."'";

Por otra parte, para que te muestre los errores, yo el pongo el error_reporting(63);

JM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cargar un listbox (<Select>) a partir de

Publicado por didi (13 intervenciones) el 06/11/2007 14:42:42
Hola JM, gracias por responder tan pronto.

Hice loq ue me indicaste pero no me carga nada en listbox2, pienso que podría ser que al momento de llamar la función javascript que me carga de nuevo la página me resetea el list box1 y entonces el listbox2 no lo está tomando... crees que sea eso? ayudame por fa de verdad lo necesito!

con respecto a lo del error reporting, busqueé en mi archivo php.ini y lo tengo de esta manera error_reporting = E_ALL, crees que está bien como colocaría lo que me dices así error_reporting = 63?

Please help me... te agradecería muchísimo.

Saludos

Diana
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cargar un listbox (<Select>) a partir de

Publicado por JM (48 intervenciones) el 07/11/2007 10:28:52
Hola didi,

a ver si te puedo ayudar...
Primero necesitaría ver el fichero entero, ya que el problema puede estar en muchos sitios, y con el código que me enseñas no tengo suficiente...

De todas formas, con lo que has puesto, aunque supongo que esto ya lo tienes bien, asegúrate de que el fichero donde tienes los selects se llamen search.php, que el formulario se llame form1... ese tipo de errores que nos pasan a todos.

Y otra cosa que no sé si has tenido en cuenta, es que lo que se pasa por parámetro, no es lo que se muestra en el select, sino lo que se tiene en el value del option. Es decir, si le das a la primera ciudad, el valor que llegará será el 0, si le das al segundo, el valor que llegará será el 1 y así sucesivamente. Es decir, que cuando haces la búsqueda, no estás buscando la ciudad, sino un número (nose si eso es lo que necesitas o no)

Si después de revisar todo eso te sigue sin funcionar, pon aquí el código entero del fichero, o mándamelo al mail si lo prefieres.

JM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cargar un listbox (<Select>) a partir de

Publicado por didi (13 intervenciones) el 07/11/2007 12:52:10
Aquí está el código completo de la página search.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Lead Generation - Search -</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">
<!--
.Estilo1 {font-family: Verdana, Arial, Helvetica, sans-serif}
.Estilo2 {color: #006699}
.Estilo3 {
font-size: x-small;
font-weight: bold;
color: #0033FF;
}
-->
</style>
<script language="JavaScript1.2">
function countrySelected()
{
window.document.form1.action ="search.php";
window.document.form1.submit();
return true;
}

</script>
</head>

<body>

<form name="form1" method="post" action="search_lead.php">
<table width="895" height="25" border="0">
<th width="889" class="Estilo1" scope="col"><div align="left" class="Estilo2">
<div align="center">
<h2>Search your Lead </h2>
</div>
</div></th>
<tr>
<th height="65" class="Estilo1" scope="col"><div align="left" class="Estilo2">
<h3 align="left">Please insert the information:</h3>
</div>
</th>
</tr>
</table>
<p> </p>
<table width="895" height="209" border="0">
<tr>
<td class="Estilo1"><div align="left"><strong>Country:</strong></div></td>
<td>
<div align="left">
<select name="slc_country" size="1" id="slc_country" onChange="countrySelected()">

<?php
$link= mysql_connect ('localhost','root','');
if (!$link){
die ("Error al tratar de conectar ".mysql_error());
}
$db_sel=mysql_select_db('db_LG',$link);
if (!$db_sel){
die("No se pudo seleccionar la base de datos: ".mysql_error());
}
$query="select * from tbl_country";
$resultado= mysql_query($query,$link);
$total= mysql_num_rows($resultado);
for ($i=0;$i<$total;$i++){
$pais= mysql_result($resultado,$i,"NAME_COUNTRY");
echo "<option value=$i>$pais</option>";
}
//mysql_free_result()
?>
</select>
</div></td>
<td class="Estilo1"><div align="left"><strong>Customer:</strong></div></td>
<td class="Estilo1"><div align="left">

<select name="slc_customer" size="1" id="select" >
<!--option selected> Please select a Customer </option-->
<?php
$query_customer="select NAME_CUSTOMER from tbl_country_customer_sdm where NAME_COUNTRY= '".$_POST["slc_country"]."'";
//puede ser $query_customer="select NAME_CUSTOMER from tbl_country_customer_sdm where NAME_COUNTRY='{$_POST['slc_country']}";
$resultado_customer=mysql_query($query_customer,$link);
$total_customer=mysql_num_rows($resultado_customer);
for ($k=0;$k<$total_customer;$k++){
$customer=mysql_result($resultado_customer,$k,"NAME_CUSTOMER");
echo"<option value=$k>$customer</option>";
}
?>
</select>
</div></td>
</tr>
<tr>
<th width="160" class="Estilo1" scope="col"><div align="left"><span class="Estilo1">Employee:</span></div></th>
<th width="215" scope="col">
<div align="left">

<select name="slc_employee" size=1 cols=4 id="slc_employee">
<option selected>ALL</option>
<?php
$query_employee="select distinct CORPORATE_ID_EMPLOYEE from tbl_lead";
$resultado_employee=mysql_query($query_employee,$link);
$total_employee=mysql_num_rows($resultado_employee);
for ($k=0;$k<$total_employee;$k++){
$employee=mysql_result($resultado_employee,$k,"CORPORATE_ID_EMPLOYEE");
echo"<option value=$k>$employee</option>";
}

?>
</select>
</div>
</th>
<th width="160" class="Estilo1" scope="col"><div align="left">
<p>Employee Area:</p>
</div></th>
<th width="342" class="Estilo1" scope="col"><div align="left">
<select name="slc_employee_area" size="1" id="slc_employee_area">
<!--option selected>
Please select an Area
</option-->
<?php
//include_once "./common_db.inc";
//$link=db_conect();
$query_area_emp="select * from tbl_area order by NAME_AREA";
$resultado_area_emp=mysql_query($query_area_emp,$link);
$total_area_emp=mysql_num_rows($resultado_area_emp);
for ($h=0;$h<$total_area_emp;$h++){
$area=mysql_result($resultado_area_emp,$h,"NAME_AREA");
echo"<option value=$k>$area</option>";
}
//mysql_free_result()
?>
</select>
</div></th>
</tr>
<tr>
<td class="Estilo1"><div align="left"><strong>Responsible:</strong></div></td>
<td>
<div align="left">
<select name="slc_responsible" size="1" id="slc_responsible">
<!--option selected>
Please select a Responsible
</option-->
<?php
$query_responsible="select * from tbl_responsible";
$resultado_responsible=mysql_query($query_responsible,$link);
$total_responsible=mysql_num_rows($resultado_responsible);
for ($j=0;$j<$total_responsible;$j++){
$responsible=mysql_result($resultado_responsible,$j,"NAME_RESPONSIBLE");
echo"<option value=$j>$responsible</option>";
}
//mysql_free_result()
?>
</select>
</div>
</td>
<td class="Estilo1"><div align="left"><strong>Responsible Area:</strong></div></td>
<td class="Estilo1"><div align="left">
<select name="slc_responsible_area" size="1" id="slc_responsible_area">
<!--option selected>
Please select an Area
</option-->
<?php
$query_area="select * from tbl_area order by NAME_AREA";
$resultado_area=mysql_query($query_area,$link);
$total_area=mysql_num_rows($resultado_area);
for ($h=0;$h<$total_area;$h++){
$area=mysql_result($resultado_area,$h,"NAME_AREA");
echo"<option value=$k>$area</option>";
}
//mysql_free_result()
?>
</select>
</div></td>
</tr>
<tr>
<td class="Estilo1"><strong>Status:</strong></td>
<td class="Estilo1"><select name="slc_status[]" size="2" multiple="true" id="slc_status">
<?php
$query_status="select * from tbl_status";
$resultado_status=mysql_query($query_status,$link);
$total_status=mysql_num_rows($resultado_status);
for ($k=0;$k<$total_status;$k++){
$status=mysql_result($resultado_status,$k,"NAME_STATUS");
echo"<option value=$k>$status</option>";
}
//mysql_free_result()
mysql_close($link)

?>
</select> </td>
<td class="Estilo1"><span class="Estilo3">(Ctrl key to select more than one option) </span></td>
<td class="Estilo1"> </td>
</tr>
</table>
<table width="896" border="0">
<tr>
<th scope="col">
<input type="submit" name="Submit" value="Search Lead">

</th>
</tr>
</table>
<p> </p>
</form>
</body>
</html>

***Ya me di cuenta que lo que se pasa es el índice pero yo realmente quiero es que me pase el texto de ese índice... porque yo quiero buscar en mi base de datos es el país "XXXX" no el "0"... me captas?

por fa ayudame please esto es para un trabajo importante!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar