Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom Dia!
Estou tentando fazer uma busca em um arquivo xml mais não consigo, tenho o arquivo index.html que tem uma imagem mapeada e o arquivo dados.xml onde estão os dados...
Segue o o código da imagem mapeada.
<AREA shape="POLYGON" COORDS="57,1,52,1,7,1,7,21,40,21,39,21,38,21,37,22,36,22,35,22,34,22,33,22,32,22,31,22,30,22,29,23,28,23,28,23,27,23,26,24,25,24,24,24,23,24,22,25,21,25,21,25,20,26,19,26,18,26,17,27,17,27,16,27,15,28,14,28,14,28,13,29,12,29,12,30,11,30,10,31,10,31,9,31,9,32,8,32,7,33,7,33,6,34,6,34,5,35,5,35,5,36,4,36,4,37,3,38,3,38,3,39,2,39,2,40,2,40,1,41,1,41,1,42,1,43,1,43,0,44,0,44,0,45,0,45,0,46,0,47,0,47,0,48,0,83,0,84,0,84,0,85,0,86,0,86,0,87,0,87,1,88,1,88,1,89,1,90,1,90,2,91,2,91,2,92,3,92,3,93,3,93,4,94,4,94,5,95,5,95,5,96,6,96,6,97,7,97,7,98,8,98,9,99,9,99,10,100,10,100,11,101,12,101,12,102,13,102,14,102,14,103,15,103,16,104,17,104,17,104,18,105,19,105,20,105,20,106,21,106,22,106,23,107,24,107,25,107,26,107,26,108,27,108,28,108,29,108,30,108,31,109,32,109,33,109,34,109,35,109,36,109,37,109,38,109,39,110,40,110,40,110,41,110,42,110,43,110,44,110,45,110,46,110,47,110,48,110,49,110,50,110,51,109,52,109,53,109,54,109,55,109,56,109,57,109,58,109,59,108,60,108,60,108,61,108,62,108,63,107,64,107,65,107,66,107,67,106,67,106,68,106,69,105,70,105,71,105,71,104,72,104,73,104,74,103,74,103,75,102,76,102,76,102,77,101,78,101,78,100,79,100,80,99,80,99,81,98,81,98,82,97,82,97,83,96,83,96,84,95,84,95,85,94,85,94,85,93,86,93,86,92,86,92,87,91,87,91,87,90,87,90,88,89,88,88,88,88,88,87,88,87,88,86,89,86,89,85,89,84,89,84,89,83,89,48,89,47,89,47,89,46,89,45,88,45,88,44,88,44,88,43,88,43,88,42,87,41,87,41,87,40,87,40,86,39,86,39,86,38,85,38,85,37,85,36,84,36,84,35,83,35,83,34,82,34,82,33,81,33,81,32,80,32,79,31,79,31,78,31,78,30,77,30,76,29,76,29,75,28,74,28,73,28,73,27,72,27,71,27,70,26,70,26,69,26,68,25,67,25,66,25,66,24,65,24,64,24,63,24,62,23,61,23,60,23,59,23,58,22,57,22,57,22,56,22,55,22,54,22,53,22,52,22,51,21,50,21,49,21,52,21,57,21,82,21,82,1,57,1" href="shape15" target="_top" ALT="Router-IAU" tabindex="1" TITLE="Router-IAU" origTitle="Router-IAU">
Aí eu queria fazer o seguinte, ao clicar nesta imagem ela buscar as informações referente a ela lá no xml, indentificado pelo id do shap.
Segue o xml.
<Shape ID="15" UniqueID="{E98BDCAB-259E-42D6-BE8E-7A8FE3948061}" Name="Sheet.15" NameU="Sheet.15" Master="15">
<Text>BH 500 70Mpbs/HALF</Text>
<XForm>
<PinX Unit="MM">3.494094488188976</PinX>
<PinY Unit="MM">6.938976377952756</PinY>
</XForm>
<LayerMem>
<LayerMember>2</LayerMember>
</LayerMem>
<Prop ID="2" Name="Row_2" NameU="Row_2">
<Value Unit="STR">BH 500</Value>
<Label>Rádio</Label>
</Prop>
<Prop ID="3" Name="Row_3" NameU="Row_3">
<Value></Value>
<Label>Tecnologia</Label>
</Prop>
<Prop ID="1" Name="Row_1" NameU="Row_1">
<Value Unit="STR">HALF</Value>
<Label>Duplex</Label>
</Prop>
<Prop ID="4" Name="Row_4" NameU="Row_4">
<Value Unit="STR">5.8Ghz</Value>
<Label>Freqüencia</Label>
</Prop>
<Prop ID="5" Name="Row_5" NameU="Row_5">
<Value Unit="STR">70Mpbs</Value>
<Label>Velocidade</Label>
</Prop>
<Prop ID="6" Name="Row_6" NameU="Row_6">
<Value></Value>
<Label>Outros</Label>
</Prop>
</Shape>
Quero que pegue esses dados ao clicar e mostre em um popup.
Qualquer ajuda será bem vinda, obg.
João Batista Posta aí algo pra ver se consigo aqui, tô enrrolado faz tempo já.
>
tô enrrolado faz tempo já.
Bom, nesse caso você já deve ter alguma coisa feita, mostra para gente como você está tentando fazer.
Estou fazendo assim.
$xml = simplexml_load_file("data.xml");
foreach ($xml as $item){
if($item->attributes()->ID == 15){
foreach ($item->Prop as $prop){
if($prop->attributes()->ID == 18)
echo $prop->Label;
if($prop->attributes()->ID == 18)
echo $prop->Value;
}
}
}
Mais o problema é que tenho que informar o id do <Prop> se não ele não mostra, eu queria colocar só o id do Shape e listaria tudo daquele shap.Você possui um map, nesse map uma área clicável referente a uma imagem.
Você quer recuperar uma informação desse XML ao clicar na imagem, é isso ?
Se for, faça só com Javascript:
dados.xml
<?xml version="1.0" encoding="UTF-8"?>
<shapes>
<shape id="shape15" UniqueID="{E98BDCAB-259E-42D6-BE8E-7A8FE3948061}" name="Sheet.15" nameu="Sheet.15" Master="15">
<text>BH 500 70Mpbs/HALF</text>
<xform>
<PinX Unit="MM">3.494094488188976</PinX>
<PinY Unit="MM">6.938976377952756</PinY>
</xform>
<LayerMem>
<LayerMember>2</LayerMember>
</LayerMem>
<prop id="p2" name="Row_2" nameu="Row_2">
<value Unit="STR">BH 500</value>
<label>Rádio</label>
</prop>
<prop id="p3" name="Row_3" nameu="Row_3">
<value></value>
<label>Tecnologia</label>
</prop>
<prop id="p1" name="Row_1" nameu="Row_1">
<value Unit="STR">HALF</value>
<label>Duplex</label>
</prop>
<prop id="p4" name="Row_4" nameu="Row_4">
<value Unit="STR">5.8Ghz</value>
<label>Freqüencia</label>
</prop>
<prop id="p5" name="Row_5" nameu="Row_5">
<value Unit="STR">70Mpbs</value>
<label>Velocidade</label>
</prop>
<prop id="p6" name="Row_6" nameu="Row_6">
<value></value>
<label>Outros</label>
</prop>
</shape>
</shapes>
Seu HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http-~~-//www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Shape</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
</head>
<body>
<img src ="images/bad.png" width="86" height="108" alt="Router-IAU" usemap ="#router-iau" />
<map name="router-iau">
<area id="shape" shape="poly" coords="57,1,52,1,7,1,7,21,40,21,39,21,38,21,37,22,36,22,35,22,34,22,33,22,32,22,31,22,30,22,29,23,28,23,28,23,27,23,26,24,25,24,24,24,23,24,22,25,21,25,21,25,20,26,19,26,18,26,17,27,17,27,16,27,15,28,14,28,14,28,13,29,12,29,12,30,11,30,10,31,10,31,9,31,9,32,8,32,7,33,7,33,6,34,6,34,5,35,5,35,5,36,4,36,4,37,3,38,3,38,3,39,2,39,2,40,2,40,1,41,1,41,1,42,1,43,1,43,0,44,0,44,0,45,0,45,0,46,0,47,0,47,0,48,0,83,0,84,0,84,0,85,0,86,0,86,0,87,0,87,1,88,1,88,1,89,1,90,1,90,2,91,2,91,2,92,3,92,3,93,3,93,4,94,4,94,5,95,5,95,5,96,6,96,6,97,7,97,7,98,8,98,9,99,9,99,10,100,10,100,11,101,12,101,12,102,13,102,14,102,14,103,15,103,16,104,17,104,17,104,18,105,19,105,20,105,20,106,21,106,22,106,23,107,24,107,25,107,26,107,26,108,27,108,28,108,29,108,30,108,31,109,32,109,33,109,34,109,35,109,36,109,37,109,38,109,39,110,40,110,40,110,41,110,42,110,43,110,44,110,45,110,46,110,47,110,48,110,49,110,50,110,51,109,52,109,53,109,54,109,55,109,56,109,57,109,58,109,59,108,60,108,60,108,61,108,62,108,63,107,64,107,65,107,66,107,67,106,67,106,68,106,69,105,70,105,71,105,71,104,72,104,73,104,74,103,74,103,75,102,76,102,76,102,77,101,78,101,78,100,79,100,80,99,80,99,81,98,81,98,82,97,82,97,83,96,83,96,84,95,84,95,85,94,85,94,85,93,86,93,86,92,86,92,87,91,87,91,87,90,87,90,88,89,88,88,88,88,88,87,88,87,88,86,89,86,89,85,89,84,89,84,89,83,89,48,89,47,89,47,89,46,89,45,88,45,88,44,88,44,88,43,88,43,88,42,87,41,87,41,87,40,87,40,86,39,86,39,86,38,85,38,85,37,85,36,84,36,84,35,83,35,83,34,82,34,82,33,81,33,81,32,80,32,79,31,79,31,78,31,78,30,77,30,76,29,76,29,75,28,74,28,73,28,73,27,72,27,71,27,70,26,70,26,69,26,68,25,67,25,66,25,66,24,65,24,64,24,63,24,62,23,61,23,60,23,59,23,58,22,57,22,57,22,56,22,55,22,54,22,53,22,52,22,51,21,50,21,49,21,52,21,57,21,82,21,82,1,57,1" href="#shape15" target="_top" alt="Router-IAU" tabindex="1" title="Router-IAU" />
</map>
<script type="text/javascript">
var xml;
function pegaDados( pid ){
var id = $(this).attr( 'href' );
var prop = $(xml).find( [ id , [ 'prop' , pid ].join( '#' ) ].join( ' ' ) );
var label = $(prop).find( 'label' ).text();
var value = $(prop).find( 'value' ).text();
alert( [ [ 'Label' , label ].join( ': ' ) , [ 'Value' , value ].join( ': ' ) ].join( "\n" ) );
}
$( function(){
$.ajax( {
url : 'dados.xml',
dataType : 'xml',
success : function( resp ){
xml = resp;
$( 'area' ).click( function(){
var pid = 'p2'; //recuperar o nó <prop id="2"></prop>
pegaDados( pid ); //troque o pid pelo id do nó que você quer pegar
} );
}
} );
} );
</script>
</body>
</html>João Batista, valeu pela ajuda, vou tentar aqui fazer como você postou.... Muito obg abraços.
@Adson aquino,
Vou mover o tópico para Javascript porque você não precisará de PHP, dá para fazer 100% com jQuery.
PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript / DHTML