Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2013, 05:23
kiri_vfk
 
Fecha de Ingreso: diciembre-2012
Mensajes: 17
Antigüedad: 11 años, 4 meses
Puntos: 0
hacer consulta xml con el onchange de un select y mostrar los resultados

Tengo un select cargado de países con los datos de respuesta xml. Mi intención es que al seleccionar un país me haga una consulta xml y con la respuesta que obtenga crear otro select con las provincias de ese país.
Estos son los códigos que estoy utilizando:

hotusa.php

Código PHP:
Ver original
  1. <body>
  2. <div id="formulario" style="padding:15px; border:2px solid #0066CC">
  3. <?php
  4. include("xmlpaises.php");
  5. ?>
  6. </div>
  7. </body>

xmlpaises.php

Código PHP:
Ver original
  1. <?php
  2. //XML Request
  3. $xml = "codigousu=" ."xxxx";
  4. $xml .= "&clausu=" . "xxxxxxxxxx";
  5. $xml .= "&afiliacio=" . "xx";
  6. $xml .= "&secacc=" . "xxxxx";
  7. $xml .= "&xml=";
  8. $xml2 = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
  9. $xml2 .= "<peticion>
  10. <nombre>Petici?n de Paises</nombre>
  11. <agencia>Hotusa</agencia>
  12. <tipo>5</tipo>
  13. </peticion>";
  14.  
  15. $xml .= urlencode($xml2);
  16. $length = strlen($xml);
  17. //XML Connection
  18. $fp = @fsockopen("xml.hotelresb2b.com", 80);
  19. fputs($fp, "POST http://xml.hotelresb2b.com/xml/listen_xml.jsp HTTP/1.0\nUser-Agent: PHP XMLRPC 1.1\r\n");
  20. fputs($fp, "Host: xml.hotelresb2b.com\n");
  21. fputs($fp, "Content-Type: application/x-www-form-urlencoded\n");
  22. fputs($fp, "Content-Length: " . $length . "\n");
  23. fputs($fp, "\n");
  24. fputs($fp, $xml);
  25. $respuesta = "";
  26. while(!feof($fp)) $respuesta .= fgets($fp);
  27.  
  28. fclose ($fp);
  29. //XML Answer
  30. $xml = substr($respuesta, strpos($respuesta, "<?xml"));
  31. //$xml = new SimpleXMLElement($xmlstr);
  32. //Simple XML is available from php5
  33. $sxe = new SimpleXMLElement(utf8_encode($xml), LIBXML_NOCDATA);
  34. echo "Selecciona un pa&iacute;s\n";
  35. echo'<select name="paises">';
  36. foreach ($sxe->parametros->paises->pais as $pais)
  37. {
  38.    
  39.     echo'<option value="'.$pais->codigo_pais.'">'.$pais->nombre_pais.'</option>';
  40. }
  41. echo'</select>';
  42. ?>

¿Cómo puedo hacerlo? Estoy un poco perdido; supongo que no se podrá hacer solo con php.

Otra duda es que en el select me esta escribiendo la Ñ como Ñ, y le puse el utf8_encode, no lo entiendo.

Esta es la web por si quereis ver algo:

http://www.goodfly.es/index.php/hoteles/integracion

Última edición por kiri_vfk; 11/01/2013 a las 05:29