Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ayuda con Ajax y envio de datos a otra ventana

Estas en el tema de Ayuda con Ajax y envio de datos a otra ventana en el foro de Frameworks JS en Foros del Web. Buenas. Tengo un pequeño problemilla, quiero llenar los campos de un formulario de la siguiente manera: Se carga la pagina con el formulario en blanco, ...
  #1 (permalink)  
Antiguo 25/01/2010, 02:44
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Ayuda con Ajax y envio de datos a otra ventana

Buenas.

Tengo un pequeño problemilla, quiero llenar los campos de un formulario de la siguiente manera:

Se carga la pagina con el formulario en blanco, el usuario pisa un boton que llama a una ventana emergente que realiza una busqueda de datos, una vez que el usuario realiza la busqueda, los datos arrojados contienen un boton "seleccionar". Al usuario pisar el boton "seleccionar" los datos encontrados se cargan en el formulario inicial.

Ya logre hacer el buscador y me arroja los datos ademas del boton "seleccionar", pero cual seria la accion para que al pisar dicho boton se envien los datos?

Asi va la funcion que pienso deberia mandar los datos al formulario inicial:

Código:
function NuevoAjax(){
	var xmlhttp=false;
	try{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(E){
			xmlhttp = false;
		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	
	return xmlhttp;
}

function enviarDato(){
	
	result = document.getElementById('enviar');
	
	cedula=document.seleccionar_paciente.cedula_pac.value;
	nombre=document.seleccionar_paciente.nombre_pac.value;
	apellido=document.seleccionar_paciente.apellido_pac.value;
	fecha_naci=document.seleccionar_paciente.fecha_naci_pac.value;
	direccion=document.seleccionar_paciente.direccion_pac.value;
	tlf_pac=document.seleccionar_paciente.tlf_pac.value;
	tlf_fami=document.seleccionar_paciente.tlf_familiar.value;
	fecha_ing=document.seleccionar_paciente.fecha_ingreso.value;
	edad=document.seleccionar_paciente.edad_pac.value;
	condicion=document.seleccionar_paciente.condicion_medica.value;

	
	ajax=NuevoAjax();
	ajax.open("POST", "script_ingresarPaciente.php",true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			result.innerHTML = ajax.responseText
		}+"&t2="+t2
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("cedula="+cedula+"&nombre="+nombre+"&apellido="+apellido+"&fecha_naci="+fecha_naci+"&direccion="+direccion+"&tlf_pac="+tlf_pac+"&tlf_fami="+tlf_fami+"&fecha_ing="+fecha_ing+"&edad="+edad+"&condicion="+condicion)


}
Y este es el formulario inicial (el que debe recibir los datos una vez seleccionada la busqueda):

Código:
<form action="" method="post" name="ingresar_paciente">
<fieldset><legend>Datos del Paciente</legend>
<p>Cedula:&nbsp;&nbsp;<select name="nacionalidad"> <option selected="seleccione la nacionalidad" value="">--</option> <option value="V-">V-</option> <option value="E-">E-</option></select>
     <input name="cedula_pacientes" type="text" <?php if(isset($_POST['cedula']))echo "value='".$_POST['cedula']."'";?>/> 
    
Fecha de Nacimiento: 
    <input onclick='scwShow(this,event);' name="fecha_nacimiento" type="text" readonly="readonly" <?php if(isset($_POST['fecha_naci']))echo "value='".$_POST['fecha_naci']."'";?>>
  </p>
  <p align="justify">Nombre: 
    <input name="nombre_paciente" type="text" <?php if(isset($_POST['nombre']))echo "value='".$_POST['nombre']."'";?>/>
  
Genero:
   <select name="genero">
    <option selected="Seleccione el Genero">Seleccione el Genero</option>
    <option value="masculino">Masculino</option>
    <option value="femenino">Femenino</option>
  </select>
  </p>
  <p align="justify">Apellido: <input name="apellido_paciente" type="text" <?php if(isset($_POST['apellido']))echo "value='".$_POST['apellido']."'";?>/> 
  
Fecha de Ingreso: <input onclick='scwShow(this,event);' name="fecha_ingreso" type="text" readonly="readonly" <?php if(isset($_POST['fecha_ingreso']))echo "value='".$_POST['fecha_ingreso']."'";?>>  </p>
  <p align="justify">Telefono:
    <input name="telefono_paciente" type="text" size="23" <?php if(isset($_POST['tlf_pac']))echo "value='".$_POST['tlf_pac']."'";?>/>    
    Telefono de Familiar:&nbsp;
   <input name="telefono_familiar" type="text" <?php if(isset($_POST['tlf_fami']))echo "value='".$_POST['tlf_fami']."'";?>/>
  </p>
  <p align="left">Edad: <input name="edad" type="text" size="6" />
    Direccion: 
    <input name="direccion_paciente" type="text" value="" size="24" <?php if(isset($_POST['direccion']))echo "value='".$_POST['direccion']."'";?>/>
  </p>
  <p align="justify">Indique la Condicion Medica que presenta el Paciente: <br /><textarea name="condicion_medica" cols="50" rows="7" ><?php if(isset($_POST['condicion']))echo $_POST['condicion'];?></textarea>
  <p align="center"><input name="agregar" type="button" value="Agregar" onclick="comprobar()"/>
    <input type="button" name="buscar_paciente" value="Buscar" onClick="NewWindow('http://localhost/hemodinamia/Quirofano/Ingresar_Paciente/buscarPaciente.php','popup','700','700','center','front');">
    <input name="" type="reset" value="Reestablecer" />
  </fieldset>
</form>
Cualquier ayuda es agradecida.

Última edición por Agrus; 25/01/2010 a las 02:47 Razón: Agregar el formulario inicial jeje
  #2 (permalink)  
Antiguo 25/01/2010, 09:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con Ajax y envio de datos a otra ventana

Si lo que quieres es pasar datos de la ventana emergente a la página principal, sólo tienes que usar opener:
Código Javascript:
Ver original
  1. opener.document.getElementById("id_elemento").value = "valor";
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/01/2010, 14:44
 
Fecha de Ingreso: septiembre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Ayuda con Ajax y envio de datos a otra ventana

Sigo teniendo problemas ya que no me pasa los valores a la ventana padre.

Vuelvo a explicar en caso de que no me haya explicado:

Tengo una ventana padre que llama a un popup, en el popup el usuario hace una busqueda a traves de una consulta en mysql, al mostrar el resultado de la consulta imprimo unos campos hidden que tienen el valor de las columnas de cada consulta, dentro de ese mismo popup asi como un boton "seleccionar" que al hacer click en el, se llama a la funcion js que en teoria pasa los valores de los campos ocultos a la ventana padre.

Asi va el codigo del popup:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title> <SCRIPT LANGUAGE="JavaScript">
function enviarDato(){
	
	var cedula;
	cedula=document.getElementById("cedula_pac").value;
	/*var nombre=document.getElementById("nombre_pac").value;
	var apellido=document.getElementById("apellido_pac").value;
	var fecha_naci=document.getElementById("fecha_naci_pac").value;
	var direccion=document.getElementById("direccion_pac").value;
	var tlf_pac=document.getElementById("tlf_pac").value;
	var tlf_fami=document.getElementById("tlf_familiar").value;
	var fecha_ing=document.getElementById("fecha_ingreso").value;
	var edad=document.getElementById("edad_pac").value;
	var condicion=document.getElementById("condicion_medica").value;*/

		window.opener.document.getElementById("cedula_pacientes").value = cedula;
		/*window.opener.document.getElementById("nombre_paciente").value = nombre;
		window.opener.document.getElementById("apellido_paciente").value = apellido;
		window.opener.document.getElementById("fecha_nacimiento").value = fecha_naci;
		window.opener.document.getElementById("direccion_paciente").value = direccion;
		window.opener.document.getElementById("telefono_paciente").value = tlf_pac;
		window.opener.document.getElementById("tlf_familiar").value = tlf_fami;
		window.opener.document.getElementById("fecha_ingreso").value = fecha_ing;
		window.opener.document.getElementById("edad").value = edad;
		window.opener.document.getElementById("condicion_medica").value = condicion;	*/

		window.close();
		return false;
		}</SCRIPT>		

<script type='text/JavaScript' src='scw.js'></script>

    <script>
    


    function comprobar(){var mal=false;
    numero=document.forms[0].elements.length;
    for(a=0;a<numero;a++){
    if (document.forms[0].elements[a].value==""){document.forms[0].elements[a].style.backgroundColor="#ffffcc";mal=true;}
    else{document.forms[0].elements[a].style.backgroundColor="white";}
    }
    if(mal){alert("Por favor, introduzca la Cedula del Paciente");}
    else{document.forms[0].submit()}
    }
    
    </script>
</head>

<body>
<form action="buscarPaciente.php" method="post" name="buscar_paciente" >
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Introduzca el Nombre o la Cedula del Paciente:  
<input name="busqueda" type="text" />
&nbsp;&nbsp;

</p><input name="" type="submit" value="Buscar" />

<fieldset>
<legend>Resultado</legend>


<?php
require('conexion.php');
if($_POST) {
 
$busqueda=$_POST['busqueda'];

$verifica=mysql_query("DROP TABLE IF EXISTS paciente") or die(mysql_error);
$temporal="CREATE TABLE paciente SELECT * FROM pacientes;";
$crear=mysql_query($temporal) or die (mysql_error());
$cambiar=mysql_query("ALTER TABLE paciente ENGINE = MYISAM");
$eliminar_pk=mysql_query("ALTER TABLE paciente DROP primary key"); $cambiar_tipo=mysql_query("ALTER TABLE paciente CHANGE cedula_pac cedula_pac TEXT");
$alterar=mysql_query("ALTER TABLE paciente ADD FULLTEXT( nombre_pac, apellido_pac )");
 


if ($busqueda<>''){
	
	$trozos=explode(" ",$busqueda);
	$numero=count($trozos);
	if ($numero==1) {
		
		$cadbusca="SELECT * FROM   hemodinamia.pacientes WHERE nombre_pac LIKE '%".$busqueda."%' OR apellido_pac LIKE '%".$busqueda."%'  OR cedula_pac LIKE '%".$busqueda."%' LIMIT 20;";
	} elseif ($numero>1) {
	
		
		$cadbusca="SELECT * , MATCH ( nombre_paciente, apellido_paciente ) AGAINST ('".$busqueda."') AS score FROM proveedores WHERE MATCH ( nombre_paciente, apellido_paciente ) AGAINST ('".$busqueda."') ORDER BY nombre_paciente DESC LIMIT 50";
	}


	function limitarPalabras($cadena, $longitud, $elipsis = "..."){
		$palabras = explode(' ', $cadena);
		if (count($palabras) > $longitud)
			return implode(' ', array_slice($palabras, 0, $longitud)) . $elipsis;
		else
			return $cadena;
	}

	echo "
	<table width='91%' border='1px' style='width:100%;'> 
	<tbody>
		<tr>
			<td width='6%' class='Nombre'>Nombre</td>
			<td width='13%' class='Apellido'>Apellido</td>
			<td width='8%' class='Cedula'>Cedula</td>
			<td width='7%' class='Fecha de Nacimiento'>Fecha de Nacimiento</td>
			<td width='11%' class='Direccion'>Direccion</td>
			<td width='15%' class='Telefono del Paciente'>Telefono del Paciente</td>
			<td width='16%' class='Telefono del Familiar'>Telefono del Familiar</td>
			<td width='12%' class='Fecha de Ingreso'>Fecha de Ingreso</td>
			<td width='12%' class='Edad'>Edad</td>
			<td width='12%' class='Condicion Medica'>Condicion Medica</td>
			<td width='12%' class='Condicion Medica'></td>
		</tr>";

	$result=mysql_query($cadbusca) or die(mysql_error());
	$i=1;
	while ($row = mysql_fetch_array($result)){
		echo "		
			<tr>
				<td class=\"titulo\">".$row['nombre_pac']."  <input name='cedula_pac' type='text' value='".$row['cedula_pac']."' /></td>
				<td class=\"contenido\">".$row['apellido_pac']."</td> <input name='nombre_pac' type='hidden' value='".$row['nombre_pac']."' />
				<td class=\"autor\">".$row['cedula_pac']."</td> <input name='apellido_pac' type='hidden' value='".$row['apellido_pac']."' />
				<td class=\"titulo\">".$row['fecha_naci_pac']."</td> <input name='fecha_naci_pac' type='hidden' value='".$row['fecha_naci_pac']."' />
				<td class=\"contenido\">".$row['direccion_pac']."</td> <input name='direccion_pac' type='hidden' value='".$row['direccion_pac']."' />
				<td class=\"autor\">".$row['tlf_pac']."</td> <input name='tlf_pac' type='hidden' value='".$row['tlf_pac']."' />
				<td class=\"titulo\">".$row['tlf_familiar']."</td> <input name='tlf_familiar' type='hidden' value='".$row['tlf_familiar']."' />
				<td class=\"contenido\">".$row['fecha_ingreso']."</td> <input name='fecha_ingreso' type='hidden' value='".$row['fecha_ingreso']."' />
				<td class=\"autor\">".$row['edad_pac']."</td> <input name='edad_pac' type='hidden' value='".$row['edad_pac']."' />
				<td class=\"autor\">".$row['condicion_medica']."</td> <input name='condicion_medica' type='hidden' value='".$row['condicion_medica']."' />
				<td class=\"autor\"><input name='modificar' type='button' value='Seleccionar' onclick='enviarDato();'/></td> 
			</tr>";
		$i++;
		
	}
}
}

?>
	</tbody>
	</table></form>
Alguien sabe por que no me esta funcionando esto?

Etiquetas: ajax, envio, ventanas
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 06:55.