---
title: "Problem med if()-sats [AJAX]"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/162873-problem-med-if-sats-ajax"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "wally_91"
published: "2007-07-24T20:26:16.000Z"
updated: "2007-07-25T15:42:45.000Z"
replies: 13
views: 778
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/162873-problem-med-if-sats-ajax"
---

# Problem med if()-sats [AJAX]

## #1 — wally_91, 2007-07-24T20:26Z

Hej alla!

Jag undrar lite varför jag inte får detta att fungera.

I php-filen skrives det ut om inget hittades en sha1-hash.

Jag jämför i javascriptet om jag får denna hash, och om jag får det så ska det skrivas ut "Hittades inte". Problemet är att det inte skriver ut "Hittade inte". Inget ändras.

**ajax_search.js**

```
//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('search_suggest');
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
            [B][red]if(str == "b6589fc6ab0dc82cf12099d1c2d40ab994e8410c"){
            ss.innerHTML = "<div class=\"suggest_link\">Hittade inget!</div>";[/red][/B]
            }else{
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div onmouseover="suggestOver(this);" ';
			suggest += 'onmouseout="suggestOut(this);" ';
			suggest += 'onclick="setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
            
			ss.innerHTML += suggest;
		}
	  }
	}
}
```

Jag har provat med searchReq.responseText == "b65..." men det funkade inte heller.

Har ni några förslag?

Ni hittar hela skriptet [här](http://member.webforum.nu/10018/ajax_search.js).

//wally_91

Permalänk: https://www.webforum.nu/p/162873

## #2 — zcorpan, 2007-07-24T20:34Z

Ska det inte vara if(str *... ?*

Permalänk: https://www.webforum.nu/p/2005973

## #3 — wally_91, 2007-07-24T20:37Z

Verkar inte funka... (ingen förändring)

Permalänk: https://www.webforum.nu/p/2005974

## #4 — wally_91, 2007-07-24T20:39Z

Om jag säger så här då, hur ser javascripts motsvarighet till phps empty()?

Permalänk: https://www.webforum.nu/p/2005975

## #5 — colione, 2007-07-24T20:55Z

Vad får du för resultat om du lägger in en alert(str*) precis efter for-satsen? Eller direkt på alert(searchReq.responseText);*

Permalänk: https://www.webforum.nu/p/2005979

## #6 — wally_91, 2007-07-24T21:14Z

Om jag skriver in ett namn som inte finns i databasen så kommer ingen alert upp.

Ni kan ta en titt själva på <https://www.guida.nu/nytt/suggest2/>

Permalänk: https://www.webforum.nu/p/2005982

## #7 — colione, 2007-07-24T22:14Z

Du skickar aldrig med \\n när du skickar tillbaka hashen. Då blir splittningen 1 långt, vilket inte uppfyller kravet i din for-loop. då 0\<0 är falskt, du tar ju längden -1.

Permalänk: https://www.webforum.nu/p/2005990

## #8 — colione, 2007-07-24T22:26Z

Det är vid såna här tillfällen som JSON är perfekt att returnera från den andra sidan. Då slipper du splitta och hålla på själv. Bara att bygga upp en array och köra json_encode() på den via php. Sedan evaluerar/går igenom jsonen och får en array. :)

Permalänk: https://www.webforum.nu/p/2005992

## #9 — wally_91, 2007-07-24T22:41Z

Jadu, och hur gör man detta?    :e   :q

Permalänk: https://www.webforum.nu/p/2005996

## #10 — colione, 2007-07-24T22:57Z

<http://www.json.org/>
<http://www.json.org/js.html>
<http://en.wikipedia.org/wiki/JSON>
 ;)

Har du php \> 5.2 har du en inbyggd funktion som heter json_encode(). Annars får du använda några av klasserna som är skrivna för det. :)
<http://pear.php.net/pepr/pepr-proposal-show.php?id=198>
<http://framework.zend.com/manual/en/zend.json.html>
<http://sourceforge.net/project/showfiles.php?group_id=34455&package_id=188337>
<http://solarphp.com/class/Solar_Json>
Här finns lite jämförelser mellan php-implementationerna.
<http://gggeek.altervista.org/sw/article_20061113.html>

Kort sagt så kan du plocka ut värdena från databasen, direkt som en array. Därefter så json-encodar du dem, vilket innebär att arrayen blir en sträng som följer javascript object literal, denna strängen som du returnerar tillbaka kommer att se ut nåt sånt här kke:

```
["Värde 1","Värde 2"]
```

Får du värdena från en källa du \_vet\_ är säker kan du köra eval på dem direkt och få ut en array i javascript:

```
var str = eval(searchReq.responseText) // searchReq.responseText är lika med ["Värde 1","Värde 2"]
```

Eftersom du kör eval på strängen kan man säga att du har gjort så här:

```
var str = new Array("Värde 1","Värde 2");
alert(str[0]) //visar "Värde 1"
alert(str[1]) //visar "Värde 2"
```

Är du däremot inte helt säker på källan som värdena kommer ifrån kan du använda en JSON-parser. Mer info om den finns på en av [länkarna](http://www.json.org/js.html) jag angav ovan.

Permalänk: https://www.webforum.nu/p/2005999

## #11 — wally_91, 2007-07-24T23:25Z

Får ta en titt imorgon. Är för trött nu...  :x

Permalänk: https://www.webforum.nu/p/2006002

## #12 — wally_91, 2007-07-25T15:28Z

Nu när jag gick igenom koden såg jag att den tittar på \\n:en.

```
var str = searchReq.responseText.split[b][red]("\n");[/red][/b]
```

I min php-fil så skrev jag bara ut hashet **utan \\n**. Därför reagerade inte javaskriptet när jag skrev ut hashet (på phpsidan.)!

Som det kan gå...

**Tack för all hjälp** och jag ska titta på JSON om några månader :p

Tack igen,

wally_91

Permalänk: https://www.webforum.nu/p/2006161

## #13 — colione, 2007-07-25T15:40Z

Det var väl precis det jag skrev här:

<http://www.webforum.nu/showthread.php?p=1337351#post1337351>

 ;)

Permalänk: https://www.webforum.nu/p/2006165

## #14 — wally_91, 2007-07-25T15:42Z

Doh! Hur missade jag det?  :o   :q 

Skyller på trötthet  :x

Permalänk: https://www.webforum.nu/p/2006167

---

Tråden på webben: https://www.webforum.nu/amne/javascript/162873-problem-med-if-sats-ajax
