Ir para conteúdo
Fórum Script Brasil
  • 0

Preencher Combo com xml!


claytonprog

Pergunta

Pessoal estou com um problema!!

Tenho esse link abaixo que vem do site do meu cliente:

http://meusite.com/lista.xml.php?empresa=tribus&tipo=uf

Esse link gera um xml com todos os estados:

<response>
<status>28</status>
<ufs>
<uf id="AC">ACRE</uf>
<uf id="AL">ALAGOAS</uf>
<uf id="AP">AMAPÁ</uf>
<uf id="AM">AMAZONAS</uf>
<uf id="BA">BAHIA</uf>
<uf id="CE">CEARÁ</uf>
<uf id="DF">DISTRITO FEDERAL</uf>
<uf id="ES">ESPÍRITO SANTO</uf>
<uf id="GO">GOIÁS</uf>
<uf id="MA">MARANHÃO</uf>
<uf id="MT">MATO GROSSO</uf>
<uf id="MS">MATO GROSSO DO SUL</uf>
<uf id="MG">MINAS GERAIS</uf>
<uf id="PA">PARÁ</uf>
<uf id="PB">PARAÍBA</uf>
<uf id="PR">PARANÁ</uf>
<uf id="PE">PERNAMBUCO</uf>
<uf id="PI">PIAUÍ</uf>
<uf id="RJ">RIO DE JANEIRO</uf>
<uf id="RN">RIO GRANDE DO NORTE</uf>
<uf id="RS">RIO GRANDE DO SUL</uf>
<uf id="RO">RONDÔNIA</uf>
<uf id="RR">RORAIMA</uf>
<uf id="SC">SANTA CATARINA</uf>
<uf id="SP">SÃO PAULO</uf>
<uf id="SE">SERGIPE</uf>
<uf id="TE">TESTE</uf>
<uf id="TO">TOCANTINS</uf>
</ufs>
</response>

Quero preencher uma combobox com esses dados ai, alguém poderia me ajudar?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Fiz como você disse e está dando erro:

veja o código:

<?php
                  //Estados
                  
                                                  
                
          $xml  = simplexml_load_string(file_get_contents('http://meusite.com/lista.xml.php?empresa=tribus&tipo=uf'));
                 
                

                 ?>

                   <select id="uf" name="uf">
                   <?php
                   
                    for($i=0; $i < count($xml->ufs); $i++) {

                    $url = $xml->uf[$i]->uf;

                      }      
                   ?>
                  <option value="$uf" >$uf</option>    

                </select>

Erro:

Fatal error: Call to undefined function: simplexml_load_string()

$xml = simplexml_load_string(file_get_contents('http://meusite.com/lista.xml.php?empresa=tribus&tipo=uf')); // linha com o erro

Link para o comentário
Compartilhar em outros sites

  • 0

agora ficou assim:

<?php

$url = "http://meusite.com/lista.xml.php?empresa=tribus&tipo=uf";

$xml = DOMDocument::load($url);

?>

<select id="uf" name="uf">

<?php

for($i=0; $i < count($xml->ufs); $i++) {

}

?>

<option value="$uf" >$uf</option>

</select>

Erro: Fatal error: Undefined class name 'domdocument'

lembrando que estou testando localmente!!

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal falta pouco está trazendo apenas o primeiro estado que o Acre, preciso listar todos!!

<select id="uf" name="uf">

<?php

$doc = new DOMDocument();

$doc->load( 'http://meusite/lista.xml.php?empresa=tribus&tipo=uf' );

$response = $doc->getElementsByTagName( "ufs" );

foreach( $response as $ufs )

{

$estado= $ufs->getElementsByTagName( "uf" );

$dados = $estado->item(0)->nodeValue;

?>

<option value="$dados" ><?php echo $dados;?></option>

<?php

}

?>

</select>

Alguém pode ajudar!!

Link para o comentário
Compartilhar em outros sites

  • 0
Pessoal falta pouco está trazendo apenas o primeiro estado que o Acre, preciso listar todos!!

<select id="uf" name="uf">

<?php

$Numero=0; //acrescente essa variavel

$doc = new DOMDocument();

$doc->load( 'http://meusite/lista.xml.php?empresa=tribus&tipo=uf' );

$response = $doc->getElementsByTagName( "ufs" );

foreach( $response as $ufs )

{

$estado= $ufs->getElementsByTagName( "uf" );

$dados = $estado->item($Numero)->nodeValue;

?>

<option value="$dados" ><?php echo $dados;?></option>

<?php

$Numero++; //acrescente essa variavel no seu codigo

}

?>

</select>

Alguém pode ajudar!!

Dessa maneira acredito que so está apareceto um elemento por você esta indicando o indice razo (0) no elemento.

acrescentei uma pequena modificação para o acesso de elementos acompanhar o array

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...