Foros del Web » Programando para Internet » PHP »

combo dependiente mediante postback

Estas en el tema de combo dependiente mediante postback en el foro de PHP en Foros del Web. buenos tardes a todos estoy en busqueda de solucionar un incombeniente con los combox dependientes. colocare primero el codigo y luego mi problema este codigo ...
  #1 (permalink)  
Antiguo 24/09/2012, 11:42
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
combo dependiente mediante postback

buenos tardes a todos estoy en busqueda de solucionar un incombeniente con los combox dependientes.

colocare primero el codigo y luego mi problema

este codigo esta ubicado en el index

<SCRIPT LANGUAGE="JavaScript">
function idcountry() {
document.forms.register.action=""
document.forms.register.method="post";
document.forms.register.submit();
}

function iddepartment() {
document.forms.register.action=""
document.forms.register.method="post";
document.forms.register.submit();
}

</SCRIPT>

<form name="register" method="post" action="">
<?php $pais = pais();?>
<?php $departamento = departamento ($_POST['id']);?>
</form>


la conexion junto con la funcion:

function pais(){
$mysqli = new mysqli("localhost", "root", "", "database");
if(!$mysqli->set_charset("utf8")) {
printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
}

$query = "SELECT id, namecountry FROM country ORDER BY namecountry ASC";

if($result = $mysqli->query($query)) {
/* obtener array asociativo */
echo '<td width="15%"><label>Pais:</label></td>';
echo '<td width="35%"><select name="country" onChange="idcountry()">';
echo '<option value="0">Seleccione o digite un pais</option>';
while ($row = $result->fetch_assoc()) {
if($row['id']==$_POST['country']){
echo '<option value="'.$row['id'].'" selected="selected">'.$row['namecountry'].'</option>';
}
else{
echo '<option value="'.$row['id'].'">'.$row['namecountry'].'</option>';
}
}
echo '</select>';
/* liberar el resultset */
$result->free();
}
}



function departamento($id){
if (isset($_POST['idcountry'])) {// UTILIZADA EN EDITAR.PHP
$id = strip_tags($_POST['idcountry']);
$mysqli = new mysqli("localhost", "root", "", "database");
if(!$mysqli->set_charset("utf8")) {
printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
}

$query = "SELECT id, namedepartment, idcountry FROM department WHERE idcountry = '$id' ";

if($result = $mysqli->query($query)) {
/* obtener array asociativo */
echo '<td width="15%"><label>Departamento:</label></td>';
echo '<td width="35%"><select name="department" onChange="iddepartment()">';
echo '<option value="0">Seleccione o digite un departamento</option>';
while ($row = $result->fetch_assoc()) {
if($row['id']==$_POST['department']){
echo '<option value="'.$row['id'].'" selected="selected">'.$row['namedepartment'].'</option>';
}
else{
echo '<option value="'.$row['id'].'">'.$row['namedepartment'].'</option>';
}
}
echo '</select>';
/* liberar el resultset */
$result->free();
}
}
}


en que consiste mi problema bueno al llamar la tabla paises esta me los tre sin problema alguno la cuestion es cuando se selecciona el pais la casilla de departamentos me dice que no se encuentra definida la variable $id.

cuando defino la variable desaparece el input de departamento por tanto no hay como seleccionar o verlo ,
alguien que pueda ayudar con este inconveniente
  #2 (permalink)  
Antiguo 24/09/2012, 13:32
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Respuesta: combo dependiente mediante postback

Utiliza FIREBUG y fijate si en esta linea:

<?php $departamento = departamento ($_POST['id']);?>

estas mandando algun VALOR en $_POST['id']
__________________
Msn: [email protected]
  #3 (permalink)  
Antiguo 24/09/2012, 17:00
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: combo dependiente mediante postback

hola ikaro raul te agradezco tu comentario ya resolvie el problema ahora solo me presenta un inconveniente es que voy llenando el formulario con los datos soliciatados pero al momento de empezar con los combox los datos que estaban ya registrados se me borran
les dejo la funcion a ver si me pueden ayudar

function idcountry() {
var a = document.register.country.value;
if (a != "null") {
document.register.action="";
document.register.submit(); }
}

como hacer para corregir este problema gracias

Etiquetas: combo, dependiente, mediante, mysql, postback, sql, tabla, variables
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 04:59.