Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar datos de elemento

Estas en el tema de Mostrar datos de elemento en el foro de PHP en Foros del Web. Necesito que se muestren los datos del cliente cuyo dni es igual al introducido: Este es mi xml: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código XML: Ver original <?xml ...
  #1 (permalink)  
Antiguo 22/11/2015, 06:35
 
Fecha de Ingreso: octubre-2014
Mensajes: 46
Antigüedad: 9 años, 6 meses
Puntos: 0
Mostrar datos de elemento

Necesito que se muestren los datos del cliente cuyo dni es igual al introducido:

Este es mi xml:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <agencia>
  3.  <cliente dni="123">
  4.     <nombre>Mario</nombre>
  5.     <apellidos>Fdez Fdez</apellidos>
  6.     <direccion>Madrid</direccion>
  7.  </cliente>
  8.  <cliente dni="456">
  9.     <nombre>Cuco</nombre>
  10.     <apellidos>Gonzalez Martinez</apellidos>
  11.     <direccion>La Rioja</direccion>
  12.  </cliente>
  13.  <cliente dni="789">
  14.     <nombre>Manuel</nombre>
  15.     <apellidos>Vicente Gomez</apellidos>
  16.     <direccion>Sevilla</direccion>
  17.  </cliente>
  18.  <cliente dni="147">
  19.     <nombre>Fernando</nombre>
  20.     <apellidos>Alonso Martinez</apellidos>
  21.     <direccion>Vigo</direccion>
  22.  </cliente>
  23. </agencia>


Este es el archivo html mediante el cual se introduce el dni:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.  
  3. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  4. <title>Practica2PHP</title>
  5. <link href="estilo.css" rel="stylesheet" type="text/css">
  6. </head>
  7.  
  8. <h1><b>Formulario DNI</b></h1>
  9.  
  10.  
  11. <form action="servidor.php" method="post">
  12.     <fieldset>
  13.         <legend>Introduzca DNI</legend>
  14.             <label for="dni">DNI</label>
  15.             <input type="text" id="dni" name="dni" />
  16.     </fieldset>
  17. </form>
  18. </body>
  19. </html>


y este el archivo de php

[HIGHLIGHT="PHP"]<html>
<body>

<?php
if(file_exists("Copiado_1.xml"))
{
$agencia=simplexml_load_file("Copiado_1.xml");
foreach($agencia->cliente as $cliente){
if($cliente -> dni == $_POST['dni'])
{
echo "<p> El nombre del cliente es ".$cliente->nombre."</p>";
echo "<p> Los apellidos del cliente son ".$cliente->apellidos."</p>";
echo "<p> La direccion del cliente es ".$cliente->direccion."</p>";
}
}
}else{
exit("No se pudo abrir el archivo Copiado_1.xml");
}
?>

</body>
</html>
[/HIGHLIGHT

No se que estoy haciendo mal, una vez que introduzco el dni se me que la ventana del navegador en blanco.

Gracias!!
  #2 (permalink)  
Antiguo 22/11/2015, 12:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar datos de elemento

Cita:
No se que estoy haciendo mal, una vez que introduzco el dni se me que la ventana del navegador en blanco.
¿Podrías depurar linea a linea del código para entender exactamente qué se está ejecutando?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/11/2015, 08:33
 
Fecha de Ingreso: octubre-2014
Mensajes: 46
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Mostrar datos de elemento

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Podrías depurar linea a linea del código para entender exactamente qué se está ejecutando?
No sé como se hace eso
  #4 (permalink)  
Antiguo 23/11/2015, 08:34
 
Fecha de Ingreso: octubre-2014
Mensajes: 46
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Mostrar datos de elemento

Supongo que el problema este aqui:

echo "<p> El nombre del cliente es ".$cliente->nombre."</p>";
echo "<p> Los apellidos del cliente son ".$cliente->apellidos."</p>";
echo "<p> La direccion del cliente es ".$cliente->direccion."</p>";

Pero no se que tengo que poner
  #5 (permalink)  
Antiguo 23/11/2015, 08:44
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Mostrar datos de elemento

prueba asi mano, porque no veo donde cargas el archivo a leer:

Código PHP:
Ver original
  1. //cargamos el archivo
  2. $archivo = "../listas/nombre_de_la_lista.xml";
  3.  
  4. //leemos el contenido
  5. $lectura = file_get_contents($archivo);
  6.  
  7. //registramos la variable
  8. $agencia = new SimpleXMLElement($lectura);
  9.  
  10. //iniciamos el contador
  11. $count=0;
  12.  
  13. //asignamos la variables de busqueda
  14. foreach($agencia->cliente as $pos){
  15.     //comparamos la variable del xml con la enviada
  16.     if($pos['dni'] == $_POST['dni']){
  17.        
  18.         echo "<p> El nombre del cliente es ".$pos->nombre."</p>";
  19.         echo "<p> Los apellidos del cliente son ".$pos->apellidos."</p>";
  20.         echo "<p> La direccion del cliente es ".$pos->direccion."</p>";
  21.     } else{
  22.         echo "Cliente no registrado";
  23.     }
  24.     $count++;
  25. }

ojo adaptalo a tus necesidades
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 23/11/2015, 09:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar datos de elemento

Cita:
No sé como se hace eso
Básicamente es ir imprimiendo mensajes para observar que se ejecuta y que no:
Código PHP:
Ver original
  1. echo "Antes de file_exists()<br>\n";
  2.  
  3. if(file_exists("Copiado_1.xml")) {
  4.   echo "El archivo existe!<br>\n";
  5.  
  6.   $agencia=simplexml_load_file("Copiado_1.xml");
  7.  
  8.   echo "Se cargo el archivo XML<br>\n";
  9.  
  10.   foreach($agencia->cliente as $cliente) {
  11.     echo "Probando valores: {$cliente->dni} == {$_POST['dni']}<br>\n";
  12.  
  13.     if($cliente -> dni == $_POST['dni']) {
  14.       echo "<p> El nombre del cliente es ".$cliente->nombre."</p>";
  15.       echo "<p> Los apellidos del cliente son ".$cliente->apellidos."</p>";
  16.       echo "<p> La direccion del cliente es ".$cliente->direccion."</p>";
  17.     }
  18.   }
  19. } else{
  20.   exit("No se pudo abrir el archivo Copiado_1.xml");
  21. }

Deberías acostumbrarte a depurar siempre tu código, de otra forma siempre tendrás que pedir ayuda para que alguien más vea tu código: lo cual no siempre es buena idea.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: elemento, formulario, html
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 12:44.