0
XML과 AJAX가 생소하므로 XML 파일에서 일치하는 결과를 얻으려면 어떻게해야할까요? 비교적 잘 작동하는 샘플 코드가 있지만 입력 할 때마다 매번 내 결과가 중복되므로 누구나이 문제를 해결할 수 있습니까?키쌍에 jQuery가있는 XML 파일과 일치하는 결과를 모두 얻으십시오.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<form>
<input name="unos" type="text" />
</form>
<div id="stuff" style="width:400px; background:#0F0; padding-left:10px;"></div>
<div id="stuff2" style="width:400px; background:#0F0; padding-left:10px;"></div>
</body>
</html>
XML :
<?xml version="1.0" encoding="ISO-8859-1"?>
<ljudi>
<osoba>
<broj>1</broj>
<ime>Pera</ime>
<prezime>Petrovic</prezime>
<adresa>Perin Grad 1</adresa>
</osoba>
<osoba>
<broj>2</broj>
<ime>Sloba</ime>
<prezime>Slobic</prezime>
<adresa>Slobodija 2</adresa>
</osoba>
<osoba>
<broj>3</broj>
<ime>Zoran</ime>
<prezime>Zoric</prezime>
<adresa>Zorun 32</adresa>
</osoba>
<osoba>
<broj>4</broj>
<ime>Milan</ime>
<prezime>Milanovic</prezime>
<adresa>Milanovo 46</adresa>
</osoba>
<osoba>
<broj>5</broj>
<ime>Nenad</ime>
<prezime>Nenadovic</prezime>
<adresa>Nenadovice 51</adresa>
</osoba>
<osoba>
<broj>6</broj>
<ime>Zora</ime>
<prezime>Zorkovic</prezime>
<adresa>Zorun nije tu</adresa>
</osoba>
</ljudi>
JS :
$(document).ready(function() {
var n_ime=new Array();
num_div=0;
$("#stuff, #stuff2").hide();
$('form input').keyup(function() {
unos=$(this).val();
if (unos!=""){
$.ajax({
type:"GET",
url:"file.xml",
dataType:"xml",
success: function(xml) {
$(xml).find('osoba').each(function() {
ime=$(this).find('ime').text();
trazi=new RegExp(unos,"i");
if((trazi.test(ime))==true)
{
prezime=$(this).find('prezime').text();
adresa=$(this).find('adresa').text();
$("#stuff").append('<div><p>Ime: '+ime+'</p>','<p>Prezime: '+prezime+'</p>','<p>Adresa: '+adresa+'</p></div>');
$("#stuff").dequeue().fadeIn(500);
};
});
}
});
} /* if (unos!="") kraj uslova */
else{
$("#stuff").dequeue().stop(true,true).fadeOut(500,function(){
$("#stuff p").remove();
});
}
});
});
코드가 지금까지 작동, "조란"또는 "조라"를 입력하여 그것을 밖으로 시도하고 당신이 어떤 문제를 볼 수 있습니다 결과가 항상 복제되므로 어떻게 든이 문제를 해결하고 추가 결과를 제거 할 수 있습니까?
감사합니다. – Mentalhead