Foros del Web » Programando para Internet » PHP »

Enviar sin GET ni POST

Estas en el tema de Enviar sin GET ni POST en el foro de PHP en Foros del Web. Hola, Me gustaria saber si se puede enviar el valor seleccionado en un combo a otra pagina con un simple enlace (no boton de Submit) ...
  #1 (permalink)  
Antiguo 07/09/2005, 10:22
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 14 años, 3 meses
Puntos: 4
Pregunta Enviar sin GET ni POST

Hola,

Me gustaria saber si se puede enviar el valor seleccionado en un combo a otra pagina con un simple enlace (no boton de Submit) sin necesidad de que el combo esté entre las etiquetas <form>, es decir sin usar GET o POST.

En el caso de que se puedo... ¿Como se recibe el valor?.

Gracias.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #2 (permalink)  
Antiguo 07/09/2005, 11:33
 
Fecha de Ingreso: julio-2003
Ubicación: Arequipa - Peru
Mensajes: 148
Antigüedad: 14 años, 4 meses
Puntos: 0
Hola, bueno a mi humilde opinion creo que no se puede, por cuando tu envias con enlace ya lo estas haciendo atraves del metodo get, por ejemplo:
Código HTML:
<a href="index.php?var1=10"></a> 
ya estas enviando a la pagina index.php la variable var1 con el metodo get
Por eso te digo que creo que no se puede, tal ves si comentas lo que quieres hacer te puedo ayudar en algo


Saludos

Direcfox
__________________
Sysdev tu Hosting
http://www.preuniversitarioonline.com Llevamos la universidad a tu casa
  #3 (permalink)  
Antiguo 07/09/2005, 11:50
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 14 años, 3 meses
Puntos: 4
Lo que quiero hacer es lo siguiente:

Tengo un combobox de este estilo:
Código PHP:
$ejecuta=matrizNombreCategorias($conex);
        
$filas=mysql_affected_rows();
        echo 
'<select name="comboCategorias">';
        for(
$i=0;$i<$filas;$i++){
            
$id_c=mysql_result($ejecuta,$i,"id_c");
            
$nombre_c=mysql_result($ejecuta,$i,"nombre_c");
            if(
$id_c!=$this->id_mc){//Para que no se pueda mover el mensaje a la categoria en la que ya se encuentra
                
echo '<option value="'.$id_c.'">'.$nombre_c.'</option>';
            }
        }
        echo 
'</select>'
Y lo que quiero es que al darle a un enlace simple me envie a otra pagina el valor de la seleccion que se hizo en el combobox.. pero todo esto sin que el combobox esté dentro de las etiquetas de un formulario.

No me importaria enviar el contenido a traves de URL pero no se me ocurre como obtener el valor que se selecciono para luego colocarlo en la variable a a enviar.

Gracias por la ayuda.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #4 (permalink)  
Antiguo 07/09/2005, 12:40
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 12 años, 5 meses
Puntos: 5
Hola,

Pues aqui te va una idea.

En el script tuyo agrega esto:

Código PHP:
echo ("<script>    
function enviar(opcion) {
var combo = document.getElementById('comb1')
var op = combo.options[opcion].value
var url = 'pagina.php?opcion=' + op;
location.href=url
}
</script>"
); 
modifica la variable url dependiendo a que pagina la mandas y con que nombre la variable.

Ahora en el combo agregale una id y un onchange quedando asi:

Código PHP:
echo '<select id="comb1" name="comboCategorias" onChange="enviar(this.selectedIndex);">'
Ya lo demas ponlo tal y como lo tienes.

Esto haria que al cambiar la opcion del combo se enviaria su valor a otra pagina, en este ejmplo pagina.php?opcion=tu_valor.

Para que todo funcione bien deja la primera opcion del combo vacia.

Eso es lo que necesitas ¿no?

Saludos
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #5 (permalink)  
Antiguo 07/09/2005, 13:02
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 12 años, 5 meses
Puntos: 5
Ahora que si necesitas que se envie hasta que un enlace sea presionado, pues hay muy pocas diferencias con el ejemplo de arriba.

El funcion js ponla de esta forma:
Código PHP:
echo ("<script>    
function enviar() {
var combo = document.getElementById('comb')
var opcion = combo.selectedIndex
var op = combo.options[opcion].value
var url = 'pagina.php?opcion=' + op; 
location.href=url
}
</script>"
); 
Nota: recuerda modificar var url con el nombre de la pagina que quieras

Ahora el combo ponlo asi:
Código PHP:
echo '<select id="comb1" name="comboCategorias">'
El enlace para enviar el valor del combo es asi:
Código PHP:
echo ("<a onClick='enviar()'>Texto que envia el valor</a>"); 
En este caso no es necesario dejar una opcion vacia en el combo porque no se usa el evento onChange.

Si algo no quedo entendible dime e intentare explicarlo mejor

Saludos
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico

Última edición por hieloverde; 07/09/2005 a las 18:46
  #6 (permalink)  
Antiguo 07/09/2005, 16:02
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 12 años, 3 meses
Puntos: 0
Tambien necesito ayuda ...

Hola tambien tengo el mismo ploblema, me puedes enviar el codigo completo. o un ejemplo practico..

Muchas gracias. Se me olvidaba es Urgente.

Bye.
  #7 (permalink)  
Antiguo 07/09/2005, 19:02
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 12 años, 5 meses
Puntos: 5
Cita:
Hola tambien tengo el mismo ploblema, me puedes enviar el codigo completo. o un ejemplo practico..
Pense que quedaba entendible el ejemplo de arriba , pero por si las dudas aqui pongo algo mas practico.

Se supone que la idea es mandar una variable hacia otra pagina sin utilizar un formulario ni un boton de submit, pero si usando un enlace. Quedando entendido que esta viajara en la url (o sea que se obtiene por GET).

Este es el ejemplo mas "practico" que se me ocurre:

Código PHP:
$pagina "pagina.php"/* A esta pagina de enviara la variable*/
/* Esta es la funcion javascript que 
enviara el valor que se selecciona */
echo ("<script>    
function enviar() {
var combo = document.getElementById('comb')
var opcion = combo.selectedIndex
var op = combo.options[opcion].value
var url = '"
.$pagina."?opcion=' + op;
location.href=url
}
</script>"
);

/* Este es el combo que se usa  */
echo ("<select id='comb'>
          <option value='a'>Primera </option>
          <option value='b'>Segunda </option>
          <option value='c'>Tercera </option>
          <option value='d'>Cuarta </option>
          <option value='e'>Quinta </option>
</select>"
);

/* Este es el texto que al presionarlo nos envia el valor seleccionado a la
pagina que queramos sin usar el submit en la etiqueta <form> */
echo ("<a onClick='enviar()'>Enviar</a>"); 
Espero que esto sirva

Saludos
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #8 (permalink)  
Antiguo 08/09/2005, 09:04
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 12 años, 3 meses
Puntos: 0
Me queda una ultima duda

Muy bien mejor aun pero tengo una ultima inquietud ...

Como visualizo el dato seleccionado el la pagina donde se entrega la informacion?

.....

Gracias

  #9 (permalink)  
Antiguo 08/09/2005, 09:33
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 12 años, 5 meses
Puntos: 5
Bueno pues eso se hace simplemente asi:

Código PHP:
/* Obtenemos el dato */
$opcion $_GET['opcion'];
/* Lo ponemos en pantalla */
echo ($opcion); 
Esto tomando en cuenta el nombre de la variable en el jemplo anterior (pero puede hacerse al guto).

Saludos
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #10 (permalink)  
Antiguo 08/09/2005, 09:49
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 12 años, 3 meses
Puntos: 0
Gracias ....

Oye muchas gracias ....

Una buena solucion.
  #11 (permalink)  
Antiguo 08/09/2005, 14:56
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 12 años, 3 meses
Puntos: 0
Y si la captura es con un campo de texto

Oye .. gracias de nuevo. Pero tengo una inquietud

Si en ves de una lista ... lo que deseo capturar el dato con un campo de texto?

......

Me podrias colaborar???

Gracias
  #12 (permalink)  
Antiguo 08/09/2005, 18:20
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 12 años, 5 meses
Puntos: 5
Hola higi,

La duda que tienes es como se haria la emulacion del formulario pero con campos text. Pues este ejemplo habla por si mismo, ponlo tal cual esta, obviamente cambiando la pagina que recibe los datos.

Código PHP:
echo ("<p><b>Emulacion de un formulario de suscripcion<b>"); 
/* A esta pagina se enviaran los datos*/
$pagina "pagina.php";
/* El mensaje que saldra en caso de que algun campo quedara vacio */ 
$mensaje "Alguno de los campos no se lleno correctamente"
/* Funcion para enviar el valor */ 
echo ("<script>     
function enviar() { 
var nombre = document.getElementById('nombre').value
var correo = document.getElementById('correo').value
if (nombre != '' && correo != '') {  
var url = '"
.$pagina."?nombre=' + nombre + '&correo=' + correo; 
location.href=url 
    }
else { window.alert('"
.$mensaje."') }    

</script>"
); 

/* Los campos de texto  */ 
echo ("<p><b>Nombre <input type='text' id='nombre' size='20'>");
echo (
"<br>Correo <input type='text' id='correo' size='20'>");

/* Este seria el comun boton de Enviar */
echo ("<p><table style='font-family: arial;' border='1' bordercolor='000000'><tr><td bordercolor='00FF00' bgcolor='00FF00'>"); 
echo (
"<a onClick='enviar()' onMouseOver=\"this.style.cursor='hand'\"><b>Enviar</b></a>");
echo (
"</td></tr></table>"); 
Este es un ejemplo de como se emularia un formulario de suscripcion a un boletin, de esos que tienen nombre y correo, incluye una validacion muy basica pero creo que te dara una idea de como hacerlo.

Saludos
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #13 (permalink)  
Antiguo 09/09/2005, 13:51
 
Fecha de Ingreso: agosto-2005
Mensajes: 192
Antigüedad: 12 años, 3 meses
Puntos: 0
Te debo una ....

Hieloverde ... muchas gracias. te debo una.

Me salvastes de un apuro.

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 23:11.