venty: JavaScript funktion lässt sich nur einmal ausführen :S

Hey Leute!

Hab heut nacht was geschrieben aber es funktioniert nicht so wirklich ... Ich kann das script nur einmal verwenden danach macht es nur noch den 1ten teil mit der vergabe von der classe active (className). Der innerHTML teil will aber nicht so ganz. es funktioniert nur beim ersten mal den inhalt von SuchmaschineForm zu verändern...

Findet jem den fehler?

  
function SetTopic (topic) {  
	for (i=0; i<<?php echo count($topic); ?>; i++) {  
		var b = i+2;  
		document.getElementsByTagName("li")[b].className = false;  
	}  
	var active = "active";  
	document.getElementById(topic).className = active;  
	document.getElementById("htopic").value = topic;  
  
	switch (topic) {  
		case "alle":  
			var Form = "<input type=\"text\" class=\"text\" name=\"query\" id=\"query\" style=\"width:400px;\"><input type=\"submit\" class=\"submit button\" name=\"action\" value=\"Suche\">";  
			document.getElementById("SuchmaschineForm").innerHTML = Form;  
			document.getElementById("SuchmaschineForm").elements['query'].focus();  
		break;  
		case "musik":  
			var Form = "<input type=\"text\" class=\"text\" name=\"query\" id=\"query\" style=\"width:400px;\"><input type=\"submit\" class=\"submit button\" name=\"action\" value=\"Suche\">";  
			document.getElementById("SuchmaschineForm").innerHTML = Form;  
			document.getElementById("SuchmaschineForm").elements['query'].focus();  
		break;  
		case "videos":  
			var Form = "<input type=\"text\" class=\"text\" name=\"query\" id=\"query\" style=\"width:400px;\"><input type=\"submit\" class=\"submit button\" name=\"action\" value=\"Suche\"><br><br><br>";  
			document.getElementById("SuchmaschineForm").innerHTML = Form;  
			document.getElementById("SuchmaschineForm").elements['query'].focus();  
		break;  
	}  
}  
</script>  

Mfg Venty

  1. Findet jem den fehler?

    Wenn es wirklich ein Fehler ist, dann steht er in der Fehlerkonsole.

    Struppi.

  2. Hey Leute!

    [...]Der innerHTML teil will aber nicht so ganz. es funktioniert nur beim ersten mal den inhalt von SuchmaschineForm zu verändern...

    Da du bei deinem zweiten Scriptteil mit switch() arbeitest, wäre es durchaus möglich, dass die Variable weder die Zeichenkette "alle" noch "musik" oder "videos" repräsentiert. Also füge vor dem switch()-Statement eine alert()-Ausgabe durch, in welcher du während der Testlaufzeit deines Skripts überprüfen kannst, wie der Parameter topic lautet. Des Weiteren kannst du sehen, ob keiner der Fälle zugetroffen ist, indem du einen default:-Fall notierst, welcher dir dies mitteilt.
    Falls sich meine Vermutung bewahrheiten sollte und du jedoch weißt, warum die Variable mit falschem Inhalt gefüllt, bräuchten wir aber mehr Code, um dir weiterhelfen zu können. Hier wäre für uns vor allem interessant, wo die SetTopic() aufgerufen wird.

    switch (topic) {
    case "alle":
    var Form = "<input type="text" class="text" name="query" id="query" style="width:400px;"><input type="submit" class="submit button" name="action" value="Suche">";
    document.getElementById("SuchmaschineForm").innerHTML = Form;
    document.getElementById("SuchmaschineForm").elements['query'].focus();
    break;
    case "musik":
    var Form = "<input type="text" class="text" name="query" id="query" style="width:400px;"><input type="submit" class="submit button" name="action" value="Suche">";
    document.getElementById("SuchmaschineForm").innerHTML = Form;
    document.getElementById("SuchmaschineForm").elements['query'].focus();
    break;
    case "videos":
    var Form = "<input type="text" class="text" name="query" id="query" style="width:400px;"><input type="submit" class="submit button" name="action" value="Suche"><br><br><br>";
    document.getElementById("SuchmaschineForm").innerHTML = Form;
    document.getElementById("SuchmaschineForm").elements['query'].focus();
    break;
    }

      
    lg JeSchnell  
      
    PS: Ist es beabsichtigt, dass du als Schleifencounter eine globale Variable verwendest?