Foros del Web » Programando para Internet » PHP »

problemas con los formularios y botones

Estas en el tema de problemas con los formularios y botones en el foro de PHP en Foros del Web. Hola, buenas. Quisiera crear un formulario con dos botones (submit los dos) y q en función de q se pulse uno u otro, se vaya ...
  #1 (permalink)  
Antiguo 14/11/2004, 21:53
 
Fecha de Ingreso: noviembre-2004
Mensajes: 47
Antigüedad: 13 años, 1 mes
Puntos: 0
problemas con los formularios y botones

Hola, buenas. Quisiera crear un formulario con dos botones (submit los dos) y q en función de q se pulse uno u otro, se vaya a una página u otra. Concretamente, lo q hace mi página es mostrar una lista de usuarios. Al lado del nombre de cada uno aparece un checkbox asociado. Debajo doy la opción de dar de alta o de borrar los q haya seleccionado. Si pulso en "alta", me funciona a la perfección pero el otro botón de "baja" no funciona correctamente puesto q no manda las vbles.
¿Cómo podría hacer?
Adjunto el código q tengo hecho. En él utilizo tb JS para "jugar" los checkbox. Si la solución no es en php y es en Javascript, no hay ningún problema.
Un saludo y gracias de antemano.



Código PHP:
<HTML>
<HEAD>
<TITLE>peticiones</TITLE>


<script>
function marcar(esto){
 esto=(esto)?true:false;
 for (a=0;a<document.forms[0].elements.length;a++){
  elemento=document.forms[0].elements[a]
  if(elemento.type="checkbox"){
   elemento.checked=esto; }
 }
}
</script>

<script>
function invertir (){
// esto=(esto)?true:false;
 for (a=0;a<document.forms[0].elements.length;a++){
  elemento=document.forms[0].elements[a]
  if(elemento.type="checkbox"){
   if(elemento.checked==true){
    elemento.checked=false}
   else elemento.checked=true;

  }
 }
}
</script>


</HEAD>
<BODY bgcolor="#cccccc">
<div align="left">
<h2><font color="#800000">PETICIONES PENDIENTES</font></h2>
<br>

<?

//Conexion con la base
 
include("conexionBD.php");

echo 
'<FORM METHOD="GET" ACTION="atender_peticiones.php"><font color="#000080" size=3><b>SELECCIONE LAS PETICIONES PARA SER DADAS DE ALTA</font></b><br>';

//Creamos la sentencia SQL y la ejecutamos
 
$consulta="select * from pendientes;";
 
$result=mysql_db_query("lab33",$consulta);


$i=0;
echo 
'<table>';
while (
$row=mysql_fetch_array($result)){
 echo 
'<tr><td>';
 
printf("<br>Nombre: <b>%s</b>"$row[0]);
 
printf("<br>Apellidos: <b>%s</b>"$row[1]);
 
printf("<br>DNI: <b>%s</b>",$row[2]);
 
printf("<br>email: <b>%s</b>",$row[3]);
 
printf("<br>login: <b>%s</b>",$row[4],"<br>");
 echo 
'<BR><input type="checkbox" name="checkbox'.$i.'" value="'.$row[2].'">';
 echo 
"<font size=1 color=\"#C0FFC0\">DAR DE ALTA</font>";
 
$i=$i+1;
 echo 
'</td></tr>';
}
echo  
'<input type="hidden" name="numCampos" value="'.$i.'">' ;
?>

<tr><td>
<ul>
   <li><a href="javascript:marcar(true)"><font size=1 color="#000080">MARCAR TODOS</font></a></li>
   <li><a href="javascript:marcar()"><font size=1 color="#000080">DESMARCAR TODOS</font></a><br></li>
   <li><a href="javascript:invertir()"><font size=1 color="#000080">INVERTIR SELECCION</font></a><br></li>
</ul>
</td></tr>

</TABLE>




<INPUT TYPE="SUBMIT" value="Dar de alta">
</FORM>

<FORM METHOD="GET" ACTION="borra_peticiones.php">
<INPUT TYPE="SUBMIT" value="Borrar peticiones">
</FORM>


</div>
<BR> <BR>
<div align="center"><a href="menuAdmin.html">Volver al Menú Principal</a></div>
</BODY>
</HTML>

Última edición por kirof; 16/11/2004 a las 15:46
  #2 (permalink)  
Antiguo 15/11/2004, 06:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por lo que haces y usas (javascript) tu solución a ese problema es Javascript .. pero, .. en tu caso no es problema ni de eso .. es de HTML:

<FORM METHOD="GET" ACTION="borra_peticiones.php">
<INPUT TYPE="SUBMIT" value="Borrar peticiones">
</FORM>

ese botón no lo puedes poner ahí así .. si te finas ¿donde tienes tus elementos del formulario de checkbox? .. los tienes en el otro <form> .. </form> que haces arriba .. FIjate en el código HTML que está quedando al ejecutar tu script (en tu navegador: ver código fuente).

Con javascript podrías cambiar dinámicamente (ante un evento onClick por ejemplo) el URL del action del formulario (metiendo tu botón dentro del primer "form").

Sería algo así:

Código PHP:
<input type="button" name="da_igual1" value="Borrar" onClick="this.form.action='borrar_peticiones.php';this.form.submit()">
<
input type="button" name="da_igual2" value="nose" onClick="this.form.action='nose_peticiones.php':this.form.submit()"
(no sé si será del todo correcto ese javascript .. en tal caso pide orientación en el foro de Javascript).

También lo puedes hacer todo en PHP .. teniendo un sólo script para hacer ambas taréas .. tan sólo tendrías que decidir que parte del código se tendría que ejecutar en función de la existencia de tu nombre del botón (en ese caso "submit") que hagas .. algo tipo:


Código PHP:
if (isset($_GET['da_igual1'])){
// borras
} elseif (isset($_GET['da_igual2'])) {
// la otra cosa
} else {
// error .. no se seleccionó nada ...


Un saludo,

Última edición por Cluster; 15/11/2004 a las 06:12
  #3 (permalink)  
Antiguo 15/11/2004, 09:12
 
Fecha de Ingreso: noviembre-2004
Mensajes: 47
Antigüedad: 13 años, 1 mes
Puntos: 0
De acuerdo

Voy a probar de inmediato esta solución. El mayor problema q tengo es q mis conocimientos de php son pobres y los de JS aún más y hay veces q no sé por dónde tirar a pesar de leer más y más manuales.
Mil gracias.
  #4 (permalink)  
Antiguo 15/11/2004, 17:44
 
Fecha de Ingreso: noviembre-2004
Mensajes: 47
Antigüedad: 13 años, 1 mes
Puntos: 0
De acuerdo

La solución ha funcionado a la perfección. De haber sabido esto antes, me habría evitado algunos dolores de cabeza y unos códigos q meten miedo. . Pero eso forma parte del proceso de aprendizaje...
Muchas gracias de nuevo, de verdad. Me has ayudado un montón.
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 14:20.