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

[PHP+AJAX] Pasar variables...

Estas en el tema de [PHP+AJAX] Pasar variables... en el foro de Frameworks JS en Foros del Web. Hola chicos, he estado leyendo un buen tiempo el foro y recién ahora me animé a postear, ya que aún no encuentro la forma de ...

  #1 (permalink)  
Antiguo 07/07/2006, 11:50
Avatar de Westfran  
Fecha de Ingreso: julio-2006
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
[PHP+AJAX] Pasar variables...

Hola chicos, he estado leyendo un buen tiempo el foro y recién ahora me animé a postear, ya que aún no encuentro la forma de solucionar mi problema.

El asunto es el siguiente:

Tengo una página PHP con un formulario de registro de clientes (por ejemplo), que incluye datos como RUN (identificador que utilizamos en mi pais), nombre, edad, etc.

Lo que necesito hacer es que en el primer input que es el RUN de la persona, al momento de ingresar datos, estos se verifiquen en mi base de datos mysql y si el rut es encontrado, se rellenen el resto de datos del formulario.

Lo hice en Javascript, pero como no entiendo mucho del tema, no es lo optimo :

Código PHP:
<script language="javascript" type="text/javascript">
function buscar(){
<?
while ($row=mysql_fetch_array($result)) { ?>
if(document.form.r_alum.value=='<? echo $row['run']; ?>')
    {
    document.form.dgv_alum.value='<? echo $row['dgv']; ?>';
    document.form.n_alum.value='<? echo $row['nombre']; ?>';
    document.form.ap_alum.value='<? echo $row['paterno']; ?>';
    } // etc.
<? ?>
}    
</script>
y en el form :

Código:
<input type="text" name="run" onChange="buscar();">
Lo malo de esto es que si tengo 1000 registros en la base de datos, la carga de la página se relentizaría una enormidad ¿se entiende?

Lo idea es que algún alma caritativa me ayude a crear algo similar con AJAX, se los agradecería enormemente

Muchas gracias de antemano...
  #2 (permalink)  
Antiguo 07/07/2006, 14:28
 
Fecha de Ingreso: julio-2006
Mensajes: 45
Antigüedad: 18 años, 5 meses
Puntos: 0
podria ser muy bien si se podia utilizar asi el ajax

javascript - client side
PHP server side

no puedes ejecutar PHP a lado del cliente (un browser no puede ejecutar PHP , aun )
  #3 (permalink)  
Antiguo 07/07/2006, 16:12
Avatar de Westfran  
Fecha de Ingreso: julio-2006
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Parece que no entendiste mi pregunta...

Lo que pregunté es cómo puedo hacer con AJAX para verificar un rut en una Base de datos MYSQL y devolverlos a un formulario web... :O
  #4 (permalink)  
Antiguo 07/07/2006, 17:37
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 10 meses
Puntos: 3
Con AJAX puedes checar si el rot esta disponible o no ha sido creado en la BD.. incluso puedes mostrar OTRO formulario ya lleno con los datos q vinieron de la BD... pero eso q dices de pone su rot ..click a un boton y llena ESE MISMO FORMULARIO .. no creo q se pueda...
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #5 (permalink)  
Antiguo 07/07/2006, 20:21
Avatar de Westfran  
Fecha de Ingreso: julio-2006
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por B**
Con AJAX puedes checar si el rot esta disponible o no ha sido creado en la BD.. incluso puedes mostrar OTRO formulario ya lleno con los datos q vinieron de la BD... pero eso q dices de pone su rot ..click a un boton y llena ESE MISMO FORMULARIO .. no creo q se pueda...
Entonces podría ser que al mostrar el formulario nuevo, se oculte el antiguo???

Es decir, ingreso el RUN, ajax verifica si existe en la BD, de ser asi, muestra otro formulario con los datos llenos y oculta el que existía previamente

Por favor, si es asi pueden ayudarme??
  #6 (permalink)  
Antiguo 07/07/2006, 23:10
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 10 meses
Puntos: 3
Funciones de Ajax:
Código PHP:
 <script language="javascript">
                    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 
cargarContenido(datasource,divID){
                        var 
contenedor;
                        var 
otro;
                        
contenedor document.getElementById(divID);
                       
                        
ajax=nuevoAjax();

                        var 
nombre =document.form.r_alum.value //Esta variable obtiene el valor de lo q puso el usuario en el textbox nombre
                        
ajax.open("GET""valida.php?"+"&"+"nombre="+nombre,true);
                        
ajax.onreadystatechange=function() {
                         if (
ajax.readyState==4) {
                            
contenedor.innerHTML ajax.responseText
                            
}
                        }
                    
ajax.send(null)
                    }

                    
</script>
                   
<body>


           <center></center>


        <div id="contenedor">
             //aqui el formulario.//
             <input type =submit value = "Manda un email" onclick ="cargarContenido('valida.php','contenedor')">
        </div> 
valida.php:
Código PHP:

$nombre
=$_GET['nombre'];//USA GET EN TU FORM...
//Aqui tendras el script donde checas si hay disponiblidad del RUN... si lo encuentra en la BD,  pones codigo HTML y generas el formulario con el contenido de los registros, como ya lo tenias ....

//Supongo q ya sabes como hacer el query tomando como parametros un dato del textbox

//Esa es la idea, solo adaptalo a tu proyecto.. 
Espero te sirva..
Saludos..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #7 (permalink)  
Antiguo 07/07/2006, 23:46
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 4 meses
Puntos: 2
Agrego a las respuestas que ya te dieron que es perfectamente posible llenar el formulario original con datos provenientes de la comunicación asincrónica.
La idea es bastante sencilla; al presionar un botón ejecutas una función de JS que se encarga de crear el objeto AJAX, recoger el value del campo input correspondiente y enviar la llamada mediante el método open al servidor (puedes utilizar las funciones que te ha facilitado B** ()). El servidor recibirá tu código con el cual buscará en BD algún registro que se corresponda con ese código. En caso que encuentre información la devuelves al cliente en formato XML o concatenando campos con algún caracter.
Por ejemplo si tienes información del nombre y apellido de la persona a la cual le corresponde ese ID, la puedes devolver así:

Código:
<registro>
<nombre>nombre</nombre>
<apellido>apellido</apellido>
</registro>
o así:
Código:
nombre@apellido
(Recomendable la 1º forma)

Con JS te encargas de parsear esa devolución (en el 1º caso con DOM y en el 2º separando los campos delimitados por tu caracter especial) y colocas cada dato en el value del input que corresponda.
De esta forma te evitas desde el servidor enviar un HTML completo del formulario a generar y, en cambio, solo envías los valores que deben ser colocados en los inputs en un formato X (XML o concatenados) para luego parsearlos y ubicarlos.

Queda en tí codificar esta secuencia de pasos, creo que en el foro hay bastantes ejemplos y soluciones que te pueden ayudar (comienza por las FAQ).

Saludos.
__________________
R4DS en español | R4DS en inglés
  #8 (permalink)  
Antiguo 08/07/2006, 10:14
Avatar de Westfran  
Fecha de Ingreso: julio-2006
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Muchas gracias

Voy a intentarlo con XML, cualquier duda seguiré posteando
  #9 (permalink)  
Antiguo 08/07/2006, 18:29
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 10 meses
Puntos: 3
zaqpz como vuelvo a llamar a la funcion de ajax ? Osea ya despues de haber hecho ajax.open.. y q me mande a un .php , como puedo desde ahi mandarle paramtros..?
Gracias de antemano!
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #10 (permalink)  
Antiguo 09/07/2006, 00:10
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 4 meses
Puntos: 2
Vamos por partes.
Para codificar el proceso que indiqué más arriba en este caso no haría falta llamar mas de una vez al método open. Si tu pregunta es si es posible enviar peticiones de datos asincrónicas al servidor más de una vez la respuesta es sí. La forma de realizarlo la puedes ver en cualquiera de los ejemplos del sitio de mi firma en donde el disparo de un evento X instancia un NUEVO objeto de la clase AJAX y utiliza su método open tantas veces como sea necesario sin ningún tipo de inconveniente.

En el caso de lo que pide Westfran, como te comentaba, esto no es necesario (al menos que consultes por mas de un ID). En el open envias el ID identificativo de cada persona en tu BD; el servidor te regresa datos de esa persona en formato XML (por ejemplo) que deben ser parseados en el cliente para colocar cada nodo en el input correspondiente mediante la propiedad value.

Si no comprendes el proceso avisame que intento colocando algún ejemplito sencillo.

Saludos.
__________________
R4DS en español | R4DS en inglés
  #11 (permalink)  
Antiguo 10/07/2006, 09:23
Avatar de Westfran  
Fecha de Ingreso: julio-2006
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Cita:
Iniciado por zaqpz
Vamos por partes.
Para codificar el proceso que indiqué más arriba en este caso no haría falta llamar mas de una vez al método open. Si tu pregunta es si es posible enviar peticiones de datos asincrónicas al servidor más de una vez la respuesta es sí. La forma de realizarlo la puedes ver en cualquiera de los ejemplos del sitio de mi firma en donde el disparo de un evento X instancia un NUEVO objeto de la clase AJAX y utiliza su método open tantas veces como sea necesario sin ningún tipo de inconveniente.

En el caso de lo que pide Westfran, como te comentaba, esto no es necesario (al menos que consultes por mas de un ID). En el open envias el ID identificativo de cada persona en tu BD; el servidor te regresa datos de esa persona en formato XML (por ejemplo) que deben ser parseados en el cliente para colocar cada nodo en el input correspondiente mediante la propiedad value.

Si no comprendes el proceso avisame que intento colocando algún ejemplito sencillo.

Saludos.
zaqpz, podrías poner un ejemplo por favor???
  #12 (permalink)  
Antiguo 11/07/2006, 14:49
Avatar de Westfran  
Fecha de Ingreso: julio-2006
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
Alguien que ponga un ejemplo con XML please
  #13 (permalink)  
Antiguo 11/07/2006, 22:33
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 4 meses
Puntos: 2
SQL:
Código:
CREATE TABLE `ejemplo` (
  `id` int(2) NOT NULL default '0',
  `nombre` varchar(255) NOT NULL default '',
  `apellido` varchar(255) NOT NULL default ''
) TYPE=MyISAM;

INSERT INTO `ejemplo` VALUES (100, 'Juan', 'Perez');
INSERT INTO `ejemplo` VALUES (200, 'Jorge', 'Lopez');
ej1.php
Código PHP:
<html>
<
head>
<
script language="javascript" type="text/javascript">
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 
traerDatos()
{
    var 
cod=document.getElementById("cod").value;
    var 
campo1=document.getElementById("c1");
    var 
campo2=document.getElementById("c2");
        
    var 
ajax=nuevoAjax();
    
ajax.open("POST""ej2.php"true);
    
ajax.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    
ajax.send("v="+cod);
            
    
ajax.onreadystatechange=function()
    {
        if (
ajax.readyState==4)
        {
            var 
respuesta=ajax.responseXML;
            
campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;
            
campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
        }
    }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ejemplo</title>
</head>
<body>
<input type="text" id="cod"> Codigo <input type="button" id="b1" value="Traer datos" onClick="traerDatos();"><br><br>
<input type="text" id="c1"> Nombre<br><br>
<input type="text" id="c2"> Apellido
</body>
</html> 
ej2.php
Código PHP:
<?php
$v
=$_POST["v"];

$conexion=mysql_connect("localhost""root""");
mysql_select_db("ajax"$conexion);

$resultado=mysql_query("SELECT nombre, apellido FROM ejemplo WHERE id='$v'");
$registro=mysql_fetch_row($resultado);

$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<nombre><![CDATA[$registro[0]]]></nombre>";
$xml.="<apellido><![CDATA[$registro[1]]]></apellido>";
$xml.="</datos>";
header("Content-type: text/xml");
echo 
$xml;
?>
Demás está decir que no deberías implementarlo así como lo he colocado; valida lo que recibes para evitar cualquier tipo de problema y adaptalo a tus necesidades. Como ejemplo es más que ilustrativo.

Saludos.
__________________
R4DS en español | R4DS en inglés
  #14 (permalink)  
Antiguo 12/07/2006, 08:34
Avatar de Westfran  
Fecha de Ingreso: julio-2006
Mensajes: 17
Antigüedad: 18 años, 5 meses
Puntos: 0
oooooooooooooh, excelente

Gracias amigo zaqpz, con tu ejemplo (más que bueno XD) me ha quedado muy claro, desde ahora lo implementaré en mi trabajo.

IDOLO, IDOLO, muchas gracias por todo !
  #15 (permalink)  
Antiguo 17/09/2006, 16:37
 
Fecha de Ingreso: agosto-2006
Mensajes: 5
Antigüedad: 18 años, 4 meses
Puntos: 0
Hola a todos, esta solucion sitada arriba funiona, pero como hacer cuando tenemos una consulta en la cual la respuesta son varios registros de la base de datos...osea la idea es iterar y escribir cada uno en la variable $xml. Yo he hecho algo asi pero no funciona, solo me trae el ultimo valor:

<?php

$v=$_POST["v"];
$conexion=mysql_connect("localhost", "root", "");
mysql_select_db("uwa", $conexion);

$sql = "SELECT nombre,url FROM clients WHERE id_rubro='$v' ORDER BY nombre";

$resultado=mysql_query($sql);
$rows_num = mysql_num_rows($resultado); //***


for($i = 0; $i < $rows_num; $i++) { //***

mysql_data_seek($resultado, $i); //***
$registro = mysql_fetch_array($resultado); //***

$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<descripcion><![CDATA[$registro[nombre]]]></descripcion>";
$xml.="</datos>";


} //for ***

//mysql_free_result($resultado); //***
//mysql_close($conexion); //***

header("Content-type: text/xml");
//$xml=$v;
echo $xml;

?>
  #16 (permalink)  
Antiguo 04/11/2006, 10:57
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
Cita:
Iniciado por zaqpz Ver Mensaje
SQL:
Código:
CREATE TABLE `ejemplo` (
  `id` int(2) NOT NULL default '0',
  `nombre` varchar(255) NOT NULL default '',
  `apellido` varchar(255) NOT NULL default ''
) TYPE=MyISAM;

INSERT INTO `ejemplo` VALUES (100, 'Juan', 'Perez');
INSERT INTO `ejemplo` VALUES (200, 'Jorge', 'Lopez');
ej1.php
Código PHP:
<html>
<
head>
<
script language="javascript" type="text/javascript">
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 
traerDatos()
{
    var 
cod=document.getElementById("cod").value;
    var 
campo1=document.getElementById("c1");
    var 
campo2=document.getElementById("c2");
        
    var 
ajax=nuevoAjax();
    
ajax.open("POST""ej2.php"true);
    
ajax.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    
ajax.send("v="+cod);
            
    
ajax.onreadystatechange=function()
    {
        if (
ajax.readyState==4)
        {
            var 
respuesta=ajax.responseXML;
            
campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;
            
campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
        }
    }
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Ejemplo</title>
</head>
<body>
<input type="text" id="cod"> Codigo <input type="button" id="b1" value="Traer datos" onClick="traerDatos();"><br><br>
<input type="text" id="c1"> Nombre<br><br>
<input type="text" id="c2"> Apellido
</body>
</html> 
ej2.php
Código PHP:
<?php
$v
=$_POST["v"];

$conexion=mysql_connect("localhost""root""");
mysql_select_db("ajax"$conexion);

$resultado=mysql_query("SELECT nombre, apellido FROM ejemplo WHERE id='$v'");
$registro=mysql_fetch_row($resultado);

$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<nombre><![CDATA[$registro[0]]]></nombre>";
$xml.="<apellido><![CDATA[$registro[1]]]></apellido>";
$xml.="</datos>";
header("Content-type: text/xml");
echo 
$xml;
?>
Demás está decir que no deberías implementarlo así como lo he colocado; valida lo que recibes para evitar cualquier tipo de problema y adaptalo a tus necesidades. Como ejemplo es más que ilustrativo.

Saludos.
hola estube probando el ejemplo y se ve bastante bueno, el problema es que no me funciona lo tengo tal cual pero algo me debe faltar, me arroja error de javascript en la siguiente linea:

Código PHP:
if (ajax.readyState==4)
{
 var 
respuesta=ajax.responseXML;
 
campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;// Aqui es el problema linea 40 char 13.
 
campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
 } 
no he podido dar con la solución

gracias
  #17 (permalink)  
Antiguo 04/11/2006, 16:36
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 3 meses
Puntos: 1
Cita:
Iniciado por zsamer Ver Mensaje
hola estube probando el ejemplo y se ve bastante bueno, el problema es que no me funciona lo tengo tal cual pero algo me debe faltar, me arroja error de javascript en la siguiente linea:

Código PHP:
if (ajax.readyState==4)
{
 var 
respuesta=ajax.responseXML;
 
campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data;// Aqui es el problema linea 40 char 13.
 
campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
 } 
no he podido dar con la solución

gracias
Sabes que estado HTTP te devuelve?

Código PHP:
if (ajax.readyState==4) {
   if(
ajax.status==200) {
      var 
respuesta=ajax.responseXML;
      
campo1.value=respuesta.getElementsByTagName("nombre")[0].childNodes[0].data
      
campo2.value=respuesta.getElementsByTagName("apellido")[0].childNodes[0].data;
   } else {
      
alert("Estado: " ajax.status "\nMotivo: " ajax.statusText);
   }

  #18 (permalink)  
Antiguo 04/11/2006, 17:22
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
Devuelve:
Estado:404
Motivo: Not Found
  #19 (permalink)  
Antiguo 04/11/2006, 17:33
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 3 meses
Puntos: 1
Hola zsamer, antes de nada (aunque ya no es antes de nada)
No he seguido todo el post pero el error se ve que es en la variable respuesta.
Tienes el archivo ej2.php en el mismo directorio que ej1.php?
  #20 (permalink)  
Antiguo 05/11/2006, 00:48
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
si estan en el mismo directorio.
  #21 (permalink)  
Antiguo 05/11/2006, 09:42
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 3 meses
Puntos: 1
Yo creo que el código de zaqpz debe funcionar perfectamente siempre y cuando controles que se conecte a la db, que la consulta devuelva algún registro, etc... como el te dijo.

Pero el 404 dice que ese recurso (ej2.php) no se ha encontrado. No le estarás llamando Ej2.php o eJ2.php o ej2.pHp...?

Ten en cuenta que no es lo mismo ej2.php que Ej2.php

Tienes ese ejemplo colgado en alguna web para verlo?
  #22 (permalink)  
Antiguo 05/11/2006, 13:23
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
pfff, lo que me dices es obvio. la consulta a la bd devuelve datos en el archivo eje2.php, cuando lo ejecuto solo me genera el xml sin problemas.

yo creo que es un problema en el java script.
  #23 (permalink)  
Antiguo 05/11/2006, 14:47
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 3 meses
Puntos: 1
No sé que quieres decir con pfff, pero no suena muy bien.
De todas formas te diré que a mí el siguiente código me funciona con AJAX o sea javascript y xml en:

Firefox 1.5.0.7
IE 6.0.2800.1106
Opera 8.52
Netscape 7.1

He quitado el código de la base de datos. Sólo devuelve lo que envías por POST.
y se puede ver en:
vengava . madpage . com / pfff / ej1.php

Código PHP:
<?php
$v
=$_POST["v"];
$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<nombre><![CDATA[$v]]></nombre>";
$xml.="<apellido><![CDATA[$v]]></apellido>";
$xml.="</datos>";
header("Content-type: text/xml");
echo 
$xml;
?>

Última edición por vengava; 05/11/2006 a las 15:26
  #24 (permalink)  
Antiguo 06/11/2006, 06:52
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 21 años
Puntos: 8
VENGAVA, muchas gracias, ahí funcionó perfecto, al final era un tontera mía, el archivo ej2.php y yo lo tenía como eje2.php.

saludos
  #25 (permalink)  
Antiguo 14/11/2006, 22:41
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 18 años, 1 mes
Puntos: 0
Cita:
Iniciado por vengava Ver Mensaje
No sé que quieres decir con pfff, pero no suena muy bien.
De todas formas te diré que a mí el siguiente código me funciona con AJAX o sea javascript y xml en:

Firefox 1.5.0.7
IE 6.0.2800.1106
Opera 8.52
Netscape 7.1

He quitado el código de la base de datos. Sólo devuelve lo que envías por POST.
y se puede ver en:
vengava . madpage . com / pfff / ej1.php

Código PHP:
<?php
$v
=$_POST["v"];
$xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<nombre><![CDATA[$v]]></nombre>";
$xml.="<apellido><![CDATA[$v]]></apellido>";
$xml.="</datos>";
header("Content-type: text/xml");
echo 
$xml;
?>

hola a todos este es mi primer post y lo inaguro con una duda

nombre y apellido son dos campos de la base de datos y no cambian en numero en la consulta...

ahora, como puedo hacer para que esto sea dinamico....

algo como .... esto es un carril ...

for(var i=0; i < $duracion ;i++)
$xml.="<asignatura><![CDATA[$registro[i]]]></asignatura>";

... esto no nunka ...

alguna sugerencia???
  #26 (permalink)  
Antiguo 15/11/2006, 03:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 3 meses
Puntos: 1
Hola, si vas a generar un xml con PHP no utilices variables javascript como i, cambiar las variables por $variable
Código:
    for($i=0; $i < $duracion ;$i++) ...
Prúebate este ejemplo:

Código:
<?
    header("Content-type: text/xml");
    $registro = array("caña","pato","lúcido");
    $xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
    $xml.="<clases>";
    for($i=0; $i < sizeof($registro) ;$i++)
        $xml .= "<asignatura><![CDATA[$registro[$i]]]></asignatura>";
    $xml.="</clases>";
    echo $xml;
?>
  #27 (permalink)  
Antiguo 15/11/2006, 15:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 18 años, 1 mes
Puntos: 0
gracias me funciono ...

pero como seria el caso si , fuera una consulta de este tipo

$resultado1=mysql_query("SELECT asignatura
FROM asignatura t1 join malla t2
on t1.id_asignatura = t2.id_asignatura
join carrera t3
on t2.id_carrera = t3.id_carrera
AND t3.carrera='ICI")

que devuelve por ejemplo calculo algebra etc.
lo digo porque como vi en el ejemplo de arriba los valores son unicos...
osea ej: auto | casa | perro

pero de la forma que lo necesito es

asignatura | carrera
calcullo _____ ICI
algebra _____ ICO
economia ____ IECI

.... eso gracias de antemano

Última edición por pokoso; 15/11/2006 a las 16:23
  #28 (permalink)  
Antiguo 15/11/2006, 16:32
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 18 años, 3 meses
Puntos: 1
Busqueda

Hola pokoso, esto debe funcionar

Código PHP:
<?
    $base_datos 
mysql_connect("host","usuario","pass");
    
mysql_select_db("basedatos");
    
$sql="SELECT asignatura FROM ...
    $resultado = mysql_query($sql);
    $xml="
<?xml version='1.0' encoding='ISO-8859-1'?>";
    $xml.="<clases>";
    while($fila = mysql_fetch_array($resultado)) {
        $xml .= "<asignatura><![CDATA[$fila[asignatura]]]></asignatura>";
    }
    $xml.="</clases>";
    echo $xml;
?>
  #29 (permalink)  
Antiguo 15/11/2006, 18:31
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 18 años, 1 mes
Puntos: 0
muchas gracias.

Última edición por pokoso; 19/11/2006 a las 22:34
  #30 (permalink)  
Antiguo 15/11/2006, 22:12
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 18 años, 1 mes
Puntos: 0
que pasa cuando ajax.readyState == 1 ..???
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.
Tema Cerrado




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