Foros del Web » Programando para Internet » PHP »

Problema con formulario

Estas en el tema de Problema con formulario en el foro de PHP en Foros del Web. Tengo un select que depende de otro, saque el codigo de un ejemplo de internet para lo cual tengo 2 paginas pero me da el ...
  #1 (permalink)  
Antiguo 06/04/2004, 21:32
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 13 años, 8 meses
Puntos: 0
Problema con formulario

Tengo un select que depende de otro, saque el codigo de un ejemplo de internet para lo cual tengo 2 paginas pero me da el siguiente error.

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\transchool\administrador\maquina\ prueba2.php:5) in c:\apache\htdocs\transchool\administrador\maquina\ prueba2.php on line 8

El error se presenta en la pagina 2..
el codigo de la página 2 es:
<html>
<head>
<title>Untitled Document</title>
</head>
<?php
echo $marcaant,"-",$cboMarca;

if ($marcaant!=$cboMarca) {
header("Location:prueba1.php?nombre=$nombre");
}
else {
// Ingreso de datos a la base de datos
}
?>


* la linea 8 (ocho) esta marcada con rojo

codigo de la pagina 1 que es la que tiene los select es:
<form method="post" action="prueba2.php">

<table width="70%" border="0" align="center">
<?php
// Me conecto a la base de datos
require_once('../../Conection/conect.php');
$liConx=mysql_select_db($gsDatabase_conexion,$gsCo nexion) or die (" no se pudo seleccionar la bd");

// Declaro la variable $paisant que es la que me va a indicar si hay que volver a cargar los datos de las provincias
$marcaant=$cboMarca;

print ("
<tr>
<td><div align=\"right\"><strong>Nombre y Apellido:</strong></div></td>
<td> <input type=\"text\" name=\"nombre\" value=\"$nombre\"></td>
</tr>

<input type=\"hidden\" name=\"paisant\" value=\"$paisant\">

<tr>
<td><div align=\"right\"><strong>Marca:</strong></div></td>
<td><select name=\"cboMarca\" onchange=\"submit();\">
");

//Muestra el combobox de las provincias una vez que se haya elegido el país, no antes
if (!isset($cboMarca)){
print ("<option selected>Seleccione marca</option>");
$cboMarca="0";
}

$sql="SELECT mm.MARMAQ_ID,mm.MARMAQ_NOMBRE,mo.MOD_ID,
mo.MARMAQ_ID,mo.MOD_MAQ_NOM
FROM modelo mo,marca_maquina mm where mm.MARMAQ_ID=mo.MARMAQ_ID
group by mm.MARMAQ_ID";
$res=mysql_query($sql);

while($fila=mysql_fetch_array($res))
{
print("<option value=\"$fila[MARMAQ_ID]\" ");
if ($fila[id_pais] == $cboMarca)
{ print ("selected"); }
print(">$fila[MARMAQ_NOMBRE]</option>\n");
}
print("</select></
td></tr>");

if ($cboMarca!="0")
{ print(" <tr><td><div align=\"right\"><strong>Modelo</strong></div></td>
<td><select name=\"prov\"> ");
$sqlprov="SELECT mm.MARMAQ_ID,mo.MOD_ID,mo.MARMAQ_ID,mo.MOD_MAQ_NOM
FROM modelo mo,marca_maquina mm where mm.MARMAQ_ID=mo.MARMAQ_ID and
mm.MARMAQ_ID=\"$cboMarca\" group by mo.MOD_ID";
$resprov=mysql_query($sqlprov);

while($filaprov=mysql_fetch_array($resprov))
{print("<option value=\"$filaprov[MOD_ID]\">$filaprov[MOD_MAQ_NOM]</option>"); }
print(" </select>
</td></tr>");
}
?>
<tr>
<td><div align="right"><input name="button" type="submit" value="Enviar"></div></td>
<td><input name="reset" type="reset" value="Borrar"></td>
</tr>
</table>

</form>

Culaquier ayuda a esta dormilona programadora se agradece
Saludines.
Adiosin
  #2 (permalink)  
Antiguo 07/04/2004, 04:31
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Antes de una redireccion PHP no puedes enviar salida al navegador. Asi que debes mover tu header() antes del HTML y antes del echo, y antes de cualquier espacio en blanco o linea en blanco. En el mensaje de error te dice la linea donde enviaste salida al navegador.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/04/2004, 19:00
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 13 años, 8 meses
Puntos: 0
Gracias!!!!!!1

Muchas gracias por haberte dado la lata de contestarme...
gracias...
  #4 (permalink)  
Antiguo 08/04/2004, 08:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Piensa en "PHP" (parece el anuncio/reclamo/spot de una marca de deportivos .. pero es así).

Piensa que PHP se ejecuta primero en el SERVIDOR .. lo que se procese para el "CLIENTE" es tu página que vas a mostrarle según todas las condiciones, estructuras de control y demás lógica que tenga tu código PHP .. así que bajo esa filosofía ordena tu código PHP para "dar salida" sólo al HTML en el momento que este es requerido ..

Por ejemplo en tu caso si una condición tal no se cumple se "redirecciona" (con el header("Location")que usas) hacia otra página .. Es decir, le estás mandando una "cabecera" al navegador que le dice que -antes- de que ejecute todo lo que pueda llegarle .. cambie la página .. Por ende, no tiene sentido en esa "condición" darle más "HTML" (sálida en general) al navegador por qué no va hacer nada con ello ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:58.