Foros del Web » Programando para Internet » PHP »

Problemas con combobox

Estas en el tema de Problemas con combobox en el foro de PHP en Foros del Web. Saludos a todos: Tengo este combobox en la página que estoy creando Cita: <td width="390" align="center" valign="top"><form action="modificar.php" method="POST" name="doublecombo" id="doublecombo"> <table width="390" align="center"> <tr ...
  #1 (permalink)  
Antiguo 15/09/2008, 08:32
Avatar de kabugi  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid - España
Mensajes: 65
Antigüedad: 18 años, 2 meses
Puntos: 0
Problemas con combobox

Saludos a todos:
Tengo este combobox en la página que estoy creando
Cita:
<td width="390" align="center" valign="top"><form action="modificar.php" method="POST" name="doublecombo" id="doublecombo">
<table width="390" align="center">
<tr bgcolor="#0000FF" class="breadcrumb">
<td align="center"><p>Oficio<br />
<select name="actividad" class="pagina" onchange="redirect(this.options.selectedIndex)">
<option>(Seleccionar)</option>
<option value="Carpinter&iacute;a">Carpinter&iacute;a</option>
<option value="Cerrajer&iacute;a">Cerrajer&iacute;a</option>
<option value="Construcci&oacute;n">Construcci&oacute;n</option>
<option value="Cristaler&iacute;a">Cristaler&iacute;a</option>
<option value="Decoraci&oacute;n">Decoraci&oacute;n</option>
<option value="Instalaciones">Instalaciones</option>
<option value="Reparaciones">Reparaciones</option>
<option value="Transportes">Transportes</option>
</select>
</p>
<p>Subsector<br />
<select name="subsector" class="pagina">
<p class="Estilo1">
<option value=" ">________________</option>
</select>
<script>

<!--
var groups=document.doublecombo.actividad.options.leng th
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[0][0]=new Option("________________")

group[1][0]=new Option("(Todo)")
group[1][1]=new Option("Aluminio")
group[1][2]=new Option("Madera")
group[1][3]=new Option("Parquet")
group[1][4]=new Option("Tarima")

group[2][0]=new Option("(Todo)")
group[2][1]=new Option("Apertura")
group[2][2]=new Option("Cierres")
group[2][3]=new Option("Herreria")
group[2][4]=new Option("Instalaciones")
group[2][5]=new Option("Rejas")

group[3][0]=new Option("(Todo)")
group[3][1]=new Option("Albañil")
group[3][2]=new Option("Alicatador")
group[3][3]=new Option("Escayolista")
group[3][4]=new Option("Solador")
group[3][5]=new Option("Tejador")
group[3][6]=new Option("Yesero")

group[4][0]=new Option("(Todo)")
group[4][1]=new Option("Antivandalicos")
group[4][2]=new Option("Blindados")
group[4][3]=new Option("Espejos/Lunas")

group[5][0]=new Option("(Todo)")
group[5][1]=new Option("Empapelador")
group[5][2]=new Option("Escayolista")
group[5][3]=new Option("Muralista")
group[5][4]=new Option("Pintor")

group[6][0]=new Option("Agua")
group[6][1]=new Option("Antenas")
group[6][2]=new Option("Calefaccion")
group[6][3]=new Option("Electricidad")
group[6][4]=new Option("Gas")
group[6][5]=new Option("Interfonia")
group[6][6]=new Option("Jardineria")
group[6][7]=new Option("Redes")
group[6][8]=new Option("Riego")
group[6][9]=new Option("Sonido")
group[6][10]=new Option("Telefonia")

group[7][0]=new Option("(Todo)")
group[7][1]=new Option("A. Acondicionado")
group[7][2]=new Option("Aspiradoras")
group[7][3]=new Option("Calderas")
group[7][4]=new Option("Cocinas")
group[7][5]=new Option("Frigorificos")
group[7][6]=new Option("Hornos")
group[7][7]=new Option("Lavadoras")
group[7][8]=new Option("Lavavajillas")
group[7][9]=new Option("Ordenadores")
group[7][10]=new Option("Planchas")
group[7][11]=new Option("Telefonia")
group[7][12]=new Option("Televisores/Videos/Dvd")
group[7][13]=new Option("Sonido(equipos)")
group[7][14]=new Option("Vitroceramicas")

group[8][0]=new Option("(Todo)")
group[8][1]=new Option("Portes")
group[8][2]=new Option("Mudanzas")

var temp=document.doublecombo.subsector

function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}

function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>
El problema es que en local me fnciona corectamente, es decir, me ingresa los valores en la bd, pero en cuanto lo pongo en el servidor web no me envia el subformlario subsector.
¿Alguién me puede echar una mano?
Muchas Gracias
  #2 (permalink)  
Antiguo 15/09/2008, 09:07
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Problemas con combobox

A lo mejor la DB no es exactamente la misma compañero, revisate eso!
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 15/09/2008, 09:12
Avatar de kabugi  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid - España
Mensajes: 65
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Problemas con combobox

La base de datos es la correcta, pero me avisa que el campo subsector no puede ser nulo. Como dije en local fnciona de lujo, pero no en mi alojamiento.
Gracias
  #4 (permalink)  
Antiguo 15/09/2008, 09:18
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Problemas con combobox

Creo que lo euq estas hacienbdo es select dependientes, no, que cuando selecciones una actividad te carge los option del subsector.
bueno, te recomiendo que imprimas que valores te esta cargando la funcion a ver si el funcionamiento de redirect es el esperado.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 15/09/2008, 09:31
Avatar de kabugi  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid - España
Mensajes: 65
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Problemas con combobox

En efecto y funciona correctamente la funcion, simplemente es que en el servidor no encentra el valor de subsector y lo considera nulo. Si en vez de utilizar el dreamweaver para que me inserte el valor pongo:
Cita:
$actividad = $_POST['actividad'];
$subsector = $_POST['subsector'];
if($actividad != ""){
mysql_query("INSERT INTO `oficios` (`pers_id`,`actividad`,`subsector`,`date_of`) VALUES ('".$HTTP_POST_VARS['pers_id']."', '".$HTTP_POST_VARS['actividad']."', '".$HTTP_POST_VARS['subsector']."', NOW())",$link);
}
Me recarga la página y me inserta el valor de "actividad", pero no el "subsector"
  #6 (permalink)  
Antiguo 15/09/2008, 09:50
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Problemas con combobox

ahh ok, ya he entendido, el problema es a la hora de insertar, no a la hora de cargar los datos.
Bueno podrias hacer dos pruebas.
1. imprime el valor antes de insertar a ver si lleva algun valor el subsector
2. usa $_POST en vez de $_HTTP_POST_VARs
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 15/09/2008, 10:36
Avatar de kabugi  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid - España
Mensajes: 65
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Problemas con combobox

En primer lugar darte las gracias por tus respuestas, y en segundo término:
He probado de todo, a mandarlo a otra página, a escribirlos en la misma, utilizando $_POST y $_HTTP_POST, y en local funciona a la perfección, pero al subirlo a la web el subsector desaparece.
¿Magia? no tengo ni idea, pero me trae de cabeza.
Si teneis otro scrip para hacer un combo igual o similar, pero con otro lenguaje lo probaría.
Gracias de nuevo
  #8 (permalink)  
Antiguo 15/09/2008, 10:47
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años, 6 meses
Puntos: 43
Respuesta: Problemas con combobox

lo hago con ajax, no se si deseas implementarlo
Código PHP:
function cargarCombo (url, comboAnterior, element_id, nombre) { 
    //Obtenemos el contenido del div
    //donde se cargaran los resultados
    var element =  document.getElementById(element_id);
    //Obtenemos el valor seleccionado del combo anterior
    var valordepende = document.getElementById(comboAnterior)
    var x = valordepende.value
    //construimos la url definitiva
    //pasando como parametro el valor seleccionado
    var fragment_url = url+'?Id='+x+"&name="+nombre;
    element.innerHTML = '<img src="http://www.forosdelweb.com/images/loading.gif" />'; 
    //abrimos la url
    peticion.open("GET", fragment_url); 
    peticion.onreadystatechange = function() { 
        if (peticion.readyState == 4) {
    //escribimos la respuesta
    element.innerHTML = peticion.responseText;
        } 
    } 
   peticion.send(null); 


y el html y php seria mas o menos
<td width="75%"><select name="pais"  onchange="javascript:cargarCombo('provincias.php', 'Actividades', 'Div_Subactividades', 'provincia')" id="Actividades">
<?

$query 
"SELECT * FROM paises";
$result=mysql_query($query);
$num=mysql_numrows($result);
//mysql_close();
$i=0;
while (
$i $num) {
         
$Id mysql_result($result,$i,"id");
         
$Actividad mysql_result($result,$i,"pais");
?>
<option value=<? echo $Id?> <? if((isset($idPais)) && $idPais==$Id) {
echo 
'selected="selected"';
?>>
<? echo $Actividad ?>
</option>
<?
$i
++;
}
?>
</select>
                </td>
              </tr>
            </table>
         </td>
            <td width="50%"><table width="100%" border="0" cellspacing="0" cellpadding="3" class="tblDiv">
              <tr>
                <td width="100%"><div id="Div_Subactividades">
                <label for="SubActividades">Provincia: * </label>
                    <select name="provincia"  id="SubActividades" class="select">
  <? if(isset($idProvincia)) {
/*
$servidor = 'mysql.dfcomunica.es';
$usuario = 'my0003';
$contrasena = 'pruebas';
$datos = 'my0003';
mysql_connect($servidor,$usuario,$contrasena);
@mysql_select_db($datos) or die( "Unable to select database");
*/
$query "SELECT * FROM estados WHERE relacion=$idPais";
$result=mysql_query($query);
$num=mysql_numrows($result);
//mysql_close();
$i=0;
$IdSubactividad 0;
$SubActividad '';
while (
$i $num) {
$IdSubactividad mysql_result($result,$i,"id");
$SubActividad mysql_result($result,$i,"estado");
?>
  <option value=<? echo $IdSubactividad; if($IdSubactividad==$idProvincia) {
echo 
' selected="selected"';
}
?>>
  <? echo htmlentities($SubActividad?>  </option>
  <?
$i
++;
}

?>
  </select> 
                  </div></td>
Prueba a ver si puedes implementarlo
El provincias.php tendria algo como esto(se llama en el onchange del select)

Código PHP:

<?php require_once('Connections/protecniaMySql.php'); ?>
<?
$IdActividad 
$_REQUEST['Id'];
$Nombre $_REQUEST['name'];
?>
<label for="SubActividad">Provincia:</label>
<select name="<?php echo $Nombre?>"  id="SubActividades" class="select">
<?
mysql_select_db
($database_protecniaMySql$protecniaMySql);
/*
$servidor = 'localhost:8889';
$usuario = 'root';
$contrasena = 'root';
$datos = 'my0004';
mysql_connect($servidor,$usuario,$contrasena);
@mysql_select_db($datos) or die( "Unable to select database");
*/
$query "SELECT * FROM estados WHERE relacion=$IdActividad";
$result=mysql_query($query);
$num=mysql_numrows($result);
//mysql_close();
$i=0;
while (
$i $num) {
$IdSubactividad mysql_result($result,$i,"id");
$SubActividad mysql_result($result,$i,"estado");
?>
<option value=<? echo $IdSubactividad?>>
<? echo htmlentities($SubActividad?>
</option>
<?
$i
++;
}
?>
</select>
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #9 (permalink)  
Antiguo 15/09/2008, 10:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problemas con combobox

Prueba hacer un var_dump($_POST), en tu servidor para que veas que variables estan llegando por POST.

Saludos.
  #10 (permalink)  
Antiguo 15/09/2008, 13:11
Avatar de kabugi  
Fecha de Ingreso: agosto-2006
Ubicación: Madrid - España
Mensajes: 65
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Problemas con combobox

Gracias a todos
He probado con var_dump() y en local el array me devuelve perfectamente los valores, pero cuando subo la página a la web, el string de subsector marca (0).
He revisado la configración del servidor y esta bién, ya que otras funciones que tengo con javascript funcionan correctamente.
Simplemente me estoy volviendo ji......
¿Puede existir algun problema si el servidor esta con php4?
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 21:16.