Foros del Web » Programando para Internet » PHP »

enviar formulario a sí mismo

Estas en el tema de enviar formulario a sí mismo en el foro de PHP en Foros del Web. Hola amigos foreros espero puedan colaborarme con la siguiente duda que tengo: tengo una pagina php que imprime la respuesta de varias consultas pero a ...
  #1 (permalink)  
Antiguo 10/04/2007, 14:59
Avatar de ing_aprendiz  
Fecha de Ingreso: septiembre-2005
Mensajes: 136
Antigüedad: 18 años, 7 meses
Puntos: 0
enviar formulario a sí mismo

Hola amigos foreros espero puedan colaborarme con la siguiente duda que tengo: tengo una pagina php que imprime la respuesta de varias consultas pero a su vez esta misma página debe permitir que se seleccione un departamento (esto está en una lista) con respecto a lo que el usuario elija se deben mostrar los contactos que dependan de este criterio, pero la respuesta de la consulta debe estar impresa en la misma pagina y no se deben borrar las anteriores consultas. Si alguno de ustedes puede ayudarme le estare agradecida

en espera de comentarios
chao
  #2 (permalink)  
Antiguo 10/04/2007, 15:04
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: enviar formulario a sí mismo

te puedo aconsejar que uses AJAX para que refresques los datos sin necesidad de recargar... aqui unos ejemplos:

http://www.formatoweb.com.ar/ajax/se...pendientes.php
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #3 (permalink)  
Antiguo 10/04/2007, 15:18
Avatar de ing_aprendiz  
Fecha de Ingreso: septiembre-2005
Mensajes: 136
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: enviar formulario a sí mismo

Hola gracias por contestar pero no he trabajado con AJAX, y lo que necesito no es un combo anidado, lo que necesito es una forma de que despues de seleccionar un valor en una lista, dependiendo del valor seleccionado se haga una consulta y este a su vez imprima los resultados pero teneendo en cuenta de que los resultados de las anteriores consultas también deben mostrarse en la misma pagina.

gracias por tu aporte
chao
  #4 (permalink)  
Antiguo 10/04/2007, 19:08
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
De acuerdo Re: enviar formulario a sí mismo

Hola.
Primeramente quiero aclararte que AJAX no "anida".
Es una forma extraordinaria de actualizar los datos de tu web sin necesidad de recargar todo el sitio.

Si quieres implementar ajax en tu sitio no es muy dificil. HIce una libreria sencilla de implemetar para que comiences a usar ajax.
La puedes bajar de www.usermax.net.

Por otro lado, te responderé de acuerdo a lo que solicitaste.
Cuando un usuario selecciona alguna opción de la lista "select" haces que el formulario se encíe automáticamente usando el siguiente parámetro:

Código:
 
onChange="document.Form.submit();"
Al "Form" lo reemplazas con el nombre de tu formulario.

En el action de tu formulario pones la misma página:
Código:
 
 
action="formulario.php"
Y de esa manera se enviarán los datos hasta ese momento seleccionados.
Con el dato enviado del select haces la consulta y actualizas lo que necesitas.

A los demas datos no los pierdes porque los tienes a todos disponibles en el array $_POST y los pones nuevamente de manera automática ya que a acada campo le pones por defecto el valor de la variable $_POST. Veamos un ejemplo:

Código PHP:
<input  name="dato" id="dato" value="<?= $_POST['dato'?>" />

Espero haber sido claro.

Saludos
  #5 (permalink)  
Antiguo 10/04/2007, 23:18
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: enviar formulario a sí mismo

pues igual tengas que hacer sesiones para traerte informacion
pero pues no lo veo muy optimo

a lo mejor si pones en screenshoot tu problema igual tengamos mejores soluciones

saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 11/04/2007, 09:19
Avatar de ing_aprendiz  
Fecha de Ingreso: septiembre-2005
Mensajes: 136
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: enviar formulario a sí mismo

Hola amigos foreros gracias por costestarme, la verdad es que estado investigando y estoy tratando de darle solución con ajax hay una pagina muy buena que me referenciaron y allí hay algo igual a lo que necesito, he hecho todo tal cual como esta en el ejemplo pero no me sale la pagina es la siguiente: http://w3schools.com/php/php_ajax_database.asp

y lo que he hecho es lo siguiente:

1. la funcion en js
<script>
var xmlHttp
function showUser(str)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="pagina.php"
url=url+"?q="+str
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHt tp.responseText
}
}function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
</script>

2. el select para capturar el dato
<tr>
<td height='24' valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">Departamento
: </font></td>
<td valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
<select name="users" onchange="showUser(this.value)">
<?
mysql_select_db($db, $link);
$cone=mysql_query("SELECT IDDEPARTAMENTO, DESCRIPCION FROM departamento order by DESCRIPCION",$link);
while($fil=mysql_fetch_array($cone))
{
if (strlen($fil[1])>50) {
$aux = substr($fil[1],0,50);
echo '<option value="'.$fil[0].'">'.$aux."...";'</option>';
} else {
echo '<option value="'.$fil[0].'">'.$fil[1].'</option>';
}
}
?>
</select>

</font></td>
</tr>

3. la pagina que muestra el resultado de la consulta
<?php
include("files/php4.2.3.inc.php");
require_once('files/conexion.php');
?>
<?

$q=$_GET["q"];

mysql_select_db($db, $link);
$query = "select C.NOMBRE, C.MAIL, C.EXTENSION, C.MOVIL, S.TELEFONO, G.DESCRIPCION
FROM contacto C, sede S, empresa E, cargo G
WHERE S.idEmpresa=E.idempresa
AND S.IDSEDE=C.IDCONTACTO
and C.IDCARGO=G.IDCARGO
AND C.IDDEPARTAMENTO='".$q."'";
$result = mysql_query($query);

while($rowe=mysql_fetch_row($result)){
?>
<body>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="95%">
<BR>
<tr>
<td align="center"><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
</tr>
<tr></tr>
</table>
<table border="1" cellpadding="" cellspacing="0" width="600" bordercolor="#DDDDDD">
<tr>
<td><center>
<form id="formelia" name="formelia">

<table border="0" CELLSPACING=7 CELLPADDING=0>
<!--DWLayoutTable-->

<tr>
<td width="111" height='24' valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">Nombre
:&nbsp; </font></td>
<td width="464" valign="top"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
<input type="text" name="NOMBRE" size=52 maxlength=60 value="<? echo $rowe[0]; ?>">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</font></td>
</tr>
<tr>
<td height='22' valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">Mail</font><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
:&nbsp;</font></td>
<td align="left" valign="top"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
<input type="text" name="MAIL" size=60 maxlength=200 value="<? echo $rowe[1]; ?>">
</font></td>
</tr>
<tr>
<td height='22' valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">Extensión</font><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
:&nbsp;</font></td>
<td align="left" valign="top"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
<input type="text" name="EXTENSION" size=60 maxlength=200 value="<? echo $rowe[2]; ?>">
</font></td>
</tr>
<tr>
<td height='22' valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">Movil</font><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
:&nbsp;</font></td>
<td align="left" valign="top"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
<input type="text" name="MOVIL" size=60 maxlength=200 value="<? echo $rowe[3]; ?>">
</font></td>
</tr>
<tr>
<td height='22' valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">Teléfono</font><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
:&nbsp;</font></td>
<td align="left" valign="top"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
<input type="text" name="TELEFONO" size=60 maxlength=200 value="<? echo $rowe[4]; ?>">
</font></td>
</tr>
<tr>
<td height='22' valign="middle"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">Departamento</font><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
:&nbsp;</font></td>
<td align="left" valign="top"><font face='Arial, Helvetica, sans-serif' size='2' color="#000000">
<input type="text" name="DEPARTAMENTO" size=60 maxlength=200 value="<? echo $rowe[5]; ?>">
</font></td>
</tr>
</table>
</form>
</center></td>
</tr>
</table>
<br>
</div>

<?php
}
?>
</body>

no se que puede ser lo que esta mal el caso es que no me funciona gracias por sus aportes y su ayuda

chao
  #7 (permalink)  
Antiguo 11/04/2007, 09:23
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: enviar formulario a sí mismo

algun error que te marque ie o firefox??

saludos
__________________
gerardo
  #8 (permalink)  
Antiguo 11/04/2007, 09:34
Avatar de ing_aprendiz  
Fecha de Ingreso: septiembre-2005
Mensajes: 136
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: enviar formulario a sí mismo

Hola gracias por responder. Dentro de la página no sale ninún error, pero en la barra de estado dice que error desconocido (listo pero con errores)

espero puedas ayudarme
chao
  #9 (permalink)  
Antiguo 11/04/2007, 10:20
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: enviar formulario a sí mismo

Creo que es porque te ha faltado poner un par de puntos y comas en el <script> </script>, como por ejemplo aca:
alert ("Browser does not support HTTP Request")
return
Revisalo, a lo mejor es eso, no se si hay alguna otra sentencia a la que le falte. Saludos
__________________
->Aprender es un proceso que incluye el error..
  #10 (permalink)  
Antiguo 11/04/2007, 10:38
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: enviar formulario a sí mismo

checalo en firefox y te vas al menu herramientas consola de errores
antes limpialo y recarga tu pagina y antes de hacer cualquier accion checa ahi,
porque puede ser que el error sea desde el momento que cargue, si no es asi, ejecuta la ccion y checa nuevamente en la consola y veras que linea es la que esta causando un posible error

saludos
__________________
gerardo
  #11 (permalink)  
Antiguo 12/04/2007, 07:43
Avatar de ing_aprendiz  
Fecha de Ingreso: septiembre-2005
Mensajes: 136
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: enviar formulario a sí mismo

Hola gracias por responder ya solucioné el problema era algo de sintaxis en la función javascript. Pero ahora tengo otro inconveniente resulta que necesito enviarle dos variables más a la pagina que responde, tu sabes como podria concatenar dos variables más y que estas puedan ser recuepradas en la siguiente página. esta es la función:

<script>
function showUser(id){
var url = 'pagina.php';
var p = 'q='+id;
new Ajax.Updater('txtHint', url, {
method:'post',
parameters: p
}
);
}
</script>

necesito pasar a pagina.php estas dosvariables:
idEmpresa=$idEmpresa;
IDSEDE=$id

gracias por tu aporte
  #12 (permalink)  
Antiguo 12/04/2007, 08:09
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: enviar formulario a sí mismo

va depender que aqui lo envies
onchange="showUser(this.value)"

pero solo una cosa si esos datos
son variables fijas?
o son variables que cambian segun el dato seleccionado en el select o combobox??

saludos
__________________
gerardo
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 22:35.