Hej på er! Hej, tyvärr har jag inget bra svar på detta. Hoppas någon annan kan bidraga med hjälp här. Hej! Hej Henry och Pelle! Tack för hjälpen...Behöver hjälp med sökfunktionen i javascript och xml
Försöker få sök funktionen att fungera. Eftersom vi jobbar i sitevision måste vi antingen göra det via AD eller XML och js. Eftersom AD är ingenting man kan förlita sig på så valde jag att köra javascript.
jag har följande kod:
xml filen <?xml version="1.0" encoding="utf-8"?>
<indices>
<index>
<namn><![CDATA[ John ]]></namn>
<enamn><![CDATA[ Doe ]]></enamn>
<befattning><![CDATA[ teacher ]]></befattning>
</index>
<index>
<namn><![CDATA[ Paul ]]></namn>
<enamn><![CDATA[ Paulsson ]]></enamn>
<befattning><![CDATA[ administration ]]></befattning>
</index>
</indices>
Sedan kommer javascript filen:
$(document).ready(function(){
//GLOBAL VAR
var XMLSource = $('#data').attr('xmlData');
var keyword = '';
var catType = '';
var pub = '';
var i = 0;
$("#searchButton").click(function() {
keyword = $("input#term").val();
catType = $("#category option:selected").val();
//Reset any message
var errMsg = '';
pub = '';
if ( keyword == '' ) { errMsg += 'Ange sökord' + '\n'; }
else if ( catType == 'none' ) { errMsg += 'Ange kategori' + '\n'; }
else { searchThis(); }
if ( errMsg != '' ) {
pub += '<div class="error">' + '\n';
pub += errMsg;
pub += '</div>' + '\n';
}
//Show error
$('#result').html( pub );
});
function searchThis() {
$.ajax({
type: "GET",
url: XMLSource,
dataType: "xml",
success: function(xml) { loadPublication (xml) }
});
}
function loadPublication (xmlData) {
i = 0;
var row;
var searchExp = "";
$(xmlData).find('index').each(function(){
var namn = $(this).find('namn').text();
var enamn = $(this).find('enamn').text();
var befattning = $(this).find('befattning').text();
var exp = new RegExp(keyword,"gi");
if ( catType == 'namn' ) { searchExp = namn.match(exp); }
else if ( catType == 'enamn' ) { searchExp = enamn.match(exp); }
else if ( catType == 'befattning' ) { searchExp = befattning.match(exp); }
if ( searchExp != null ) {
//Start building the result
if ((i % 2) == 0) { row = 'even'; }
else { row = 'odd'; }
i++;
pub += '<tr class="row ' + row + '">' + '\n';
pub += '<td valign="top" class="col1">' + namn + '</td>' + '\n';
pub += '<td valign="top" class="col2">' + enamn + '</td>' + '\n';
pub += '<td valign="top" class="col3">' + befattning + '</td>' + '\n';
pub += '</tr>' + '\n';
}
});
if ( i == 0 ) {
pub += '<div class="error">' + '\n';
pub += 'Inga träffar' + '\n';
pub += '</div>' + '\n';
$('#result').html( pub );
}
else {
showResult ( pub );
}
}
function showResult (resultSet) {
pub = '<div class="message">Det finns ' + i + ' träffar!</div>';
pub += '<table id="grid" border="0">' + '\n';
pub += '<thead><tr>' + '\n';
pub += '<th class="col1">Namn</th>' + '\n';
pub += '<th class="col2">Efternamn</th>' + '\n';
pub += '<th class="col3">Befattning</th>' + '\n';
pub += '</tr></thead>' + '\n';
pub += '<tbody>' + '\n';
pub += resultSet;
pub += '</tbody>' + '\n';
pub += '</table>' + '\n';
$('#result').html(pub)
}
});
och html filen
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Search</title>
<link rel="stylesheet" href="css/default.css" />
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script id="data" type="text/javascript" src="js/search.js" xmlData="data/data.xml"></script>
</head>
<body>
<div id="controller">
<label>Search Term:
<input type="text" id="term">
</label>
<label>
<select name="category" id="category">
<option value="none">Please Select a Type</option>
<option value="namn">Namn</option>
<option value="enamn">efternamn</option>
<option value="befattning">befattning</option>
</select>
</label>
<input name="Search" type="button" id="searchButton" value="Search">
</div>
<div id="result"> </div>
</body>
</html>
Jag får det helt enkelt inte att fungera!
Tacksam för all hjälp man kan få!
MVH
Sv: Behöver hjälp med sökfunktionen i javascript och xml
Sv: Behöver hjälp med sökfunktionen i javascript och xml
Jag har testat scriptet och det verkar funka i FF, Chrome, och IE utan problem.
Kontrollera det följande:
1. Att du kör på en webbserver, webbhotell, eller lokalkonfigurerad HTTP server.
- Dvs. ajax:anropet begär HTTP request att få data.xml:filen. Då krävs en HTTPtjänst.
2. Att alla referenser ligger i rätt mapp.
- data.xml ska ligga i /data mappen,
- jQuery version 1.4.2 samt search.js ska ligga i /js mappen.Sv:Behöver hjälp med sökfunktionen i javascript och xml
Nu har jag kollat igen och jag får "inga träffar" om jag söker på namn men befattning och efternamn fungerar... I fredags ville inte de 2 fungera men jag fick träffar på namn... är helt snurrig i huvudet ....
Som att den aldrig kollar namn på något sätt eller vill inte parsa denna delen.
ska kolla koden igen och försöka komma på vad är det som har gått snett där.
MVH
PS: hittade felet!
Det var felnamngivet variabel ... Nu fungerar det som det skal!