Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Select option PHP + ¿Javascript?

Estas en el tema de Select option PHP + ¿Javascript? en el foro de Javascript en Foros del Web. Hola buenos días, soy nuevo por aquí y querría consultar una pequeña duda que tengo verán. Estoy programando una aplicación web en la cual requiere ...
  #1 (permalink)  
Antiguo 10/06/2015, 03:05
 
Fecha de Ingreso: junio-2015
Ubicación: Mieres
Mensajes: 4
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta Select option PHP + ¿Javascript?

Hola buenos días, soy nuevo por aquí y querría consultar una pequeña duda que tengo verán. Estoy programando una aplicación web en la cual requiere que a raiz de un código postal haga una llamada a un web service y me de las sucursales más cercanas de correos. Hasta ahí todo bien, consigo la respuesta y cargo un array con todas las oficinas. Pero lo que quiero hacer es cargar las oficinas en un select y mostrar la información del array más abajo, me imagino que sea utilizando javascript o ajax pero no soy capaz a realizarlo pido un poco de ayuda si sois tan amables. Os paso parte de mi código si os sirve para ayudarme.

Muchas gracias a todos

Código:
<html>

<?php

	function sendXmlCorreos($url, $xmlSend, $usuario_correos = false, $clave_correos = false, $SOAPAction = false)
    {

		$URL ="http://localizadoroficinas.correos.es/localizadoroficinas";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $URL);
		
        if($usuario_correos) curl_setopt($ch, CURLOPT_USERPWD, $usuario_correos.":".$clave_correos);
		
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
        
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_HEADER, FALSE);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlSend);
        curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE);
		if($SOAPAction)
			curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml; charset=utf-8", "SOAPAction: \"{$SOAPAction}\""));
        else
			curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml; charset=utf-8"));
			
		curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
        $result = curl_exec($ch);
      
	  if($result === false) {
			$err = 'Curl error: ' . curl_error($ch);
			curl_close($ch);
			return $err;
		}
		
      
       
        curl_close($ch);
        return $result;

	}
	
	
	function GetOficinas_ws($postcode)
	{
		//  Prepare the code 
		$xmlSend = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ejb="http://ejb.mauo.correos.es"><soapenv:Header/><soapenv:Body><ejb:localizadorConsulta><ejb:codigoPostal>' . $postcode . '</ejb:codigoPostal></ejb:localizadorConsulta></soapenv:Body></soapenv:Envelope>';
			
		//  send curl
		$data =sendXmlCorreos('url_localizacion_oficinas', $xmlSend);
		
		
			$dataXml = simplexml_load_string($data, NULL, NULL, "http://schemas.xmlsoap.org/soap/envelope/");
			$dataXml->registerXPathNamespace('ns', 'http://ejb.mauo.correos.es');  
			
			$_tmpData = array();
            $_tmpData['unidad'] = $dataXml->xpath('//ns:unidad');
            $_tmpData['nombre'] = $dataXml->xpath('//ns:nombre');
		    $_tmpData['direccion'] = $dataXml->xpath('//ns:direccion');
            $_tmpData['localidad'] = $dataXml->xpath('//ns:descLocalidad');
            $_tmpData['cp'] = $dataXml->xpath('//ns:cp');
            $_tmpData['telefono'] = $dataXml->xpath('//ns:telefono');
            $_tmpData['horariolv'] = $dataXml->xpath('//ns:horarioLV');
            $_tmpData['horarios'] = $dataXml->xpath('//ns:horarioS');
            $_tmpData['horariof'] = $dataXml->xpath('//ns:horarioF');
            $_tmpData['coorx'] = $dataXml->xpath('//ns:coorXWGS84');
            $_tmpData['coory'] = $dataXml->xpath('//ns:coorYWGS84');
            
            for ($indice = 0; $indice< count($_tmpData['unidad']); $indice++)
            {
                foreach($_tmpData as $_data => $_value)
                {
                    $_oficinas[$indice][$_data] =  str_replace("'","", (string) $_value[$indice]);
                }
            }
            
  
            if (empty($_oficinas)) return false;
            else return $_oficinas;
			
			
		
		
	}
	
	$cpOfi=$_POST["cpOfi"];
	$oficinas=GetOficinas_ws($cpOfi);

	?>

	<form method="POST" action="loc_oficina.php">

	<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
</head>
<body>
	<p>C.P.:<input type="text" name="cpOfi" id="cpOfi" value="<?php echo($cpOfi);?>"><input type="submit" value="Buscar oficina"></p>
	</p>Oficina:<select name="oficinas_correos" id="oficinas_correos" onChange="probar();">
	<option value="">Seleccione una oficina</option>
	<?php
	
	for($i=0;$i<count($oficinas);$i++)
	{
		if(!empty($oficinas))
		{	
		echo("<option value='".$i."'>".utf8_decode($oficinas[$i]['direccion'])."</option>");
		}
		
	}
	?>
	</select>

</form>
</body>
  #2 (permalink)  
Antiguo 11/06/2015, 04:32
 
Fecha de Ingreso: junio-2015
Ubicación: Mieres
Mensajes: 4
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Select option PHP + ¿Javascript?

Me contesto yo mismo, encontre la solución. Y además solución tonta, porque caía de cajón... El Web Service me devuelve una serie de arrays con la información de la oficina así que lo que hice era pasar el array con el value del select a javascript y cambiar el texto de los input con los datos del mismo.


Código:
<script>
	function array(e)
	{
		var oficinas= <?php echo json_encode( $oficinas )?>;
	
		alert("VALOR:"+oficinas[e]['nombre']);
	}
	</script>


</p>Oficina:<select name="oficinas_correos" id="oficinas_correos" onChange="array(this.value);">
	<option value="">Seleccione una oficina</option>
	<?php
	
	for($i=0;$i<count($oficinas);$i++)
	{
		if(!empty($oficinas))
		{	
		echo("<option value='".$i."'>".utf8_decode($oficinas[$i]['direccion'])."</option>");
		}
		
	}
	?>
Aunque ahí solo se ve que hago un alert sería cambiarlo por un document.getElementbyId('tucampo').value=oficinas[e]['nombre']; Por si a alguien le sirve. Un saludo

Última edición por AsturieshXc; 11/06/2015 a las 04:36 Razón: Texto incompleto

Etiquetas: html, option, php, select
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 20:17.