.load() und $_GET Variabeln ?

Ich tippe einfach mal darauf, dass Du doch einen Fehler übersehen hast, den Dir Firebug anzeigen müsste. Poste bitte mal die Ausgabe jener Problemzeile aus dem browsergenerierten Seitenquellcode..

mfg chmee
 
Ich befürchte chmee ist die Funktion load() unbekannt (http://api.jquery.com/load/)

It is roughly equivalent to $.get(url, data, success)
[...]
.load() sets the HTML contents of the matched element to the returned data.


Jetzt zu deinem Problem: Poste mal den HTML Code der entsprechenden Stelle, so wie er im Browser an kommt. Du sagst zwar, dass "<we:field name="WE_ID" />" korrekt ersetzt wird, aber dann würde der GET
Parameter auch ankommen.

Ansonsten solltest du mittels Firebug, HttpFox o.ä. gucken, was zum Server geschickt wird.
 
Ich gehe davon aus, dass ich irgendetwas übersehe. Also um das mal generell zu klären: Prinzipiell müsste es möglich sein in dem .load() Befehl eine Datei aufzurufen und dieser gleichzeitig eine Get Variable zu übergeben? Naja, die Zeile ist die die oben steht, oder verstehe ich das jetzt wieder falsch ^^ ?

HTML:
   <div class="showcase_choice_ref"><we:object name="ref_digi1" classid="2"><we:field type="img" name="Thumbnail" thumbnail="ref_small" /><div onclick=" $('#referenz').load('referenz_start.php?ref='<we:field name="WE_ID" />'') ;"><we:field type="text" name="Titel" /></div> // <we:field type="text" name="Unternehmen" /></we:object></div>

Im Browser kommt es dann so an:
HTML:
<div class="showcase_choice_ref"><img src="/site/images/example1.jpg" alt="" height="74" width="150" name="Thumbnail" /><div onclick=" $('#referenz').load('referenz_start.php?ref='5'') ;">Directory</div> // Example</div>

Ich habe es auch schonmal versucht ohne die einzelnen ' um den Wert für die Referenz, so dass die ausgabe im Browser nicht ='5' sondern =5 war.
 
Nein, das ist schon richtig. Und wir gehen auch davon aus, dass
Code:
referenz_start.php?ref=5
als Solches funktioniert..

Die Eigenheit von jQuery ist, dass es erst ausgeführt werden soll(te), wenn alles fertig geladen ist (window.onload() oder document.Ready..) - ich habe jQuery bis Dato noch nicht inline im html-tag benutzt noch von Anderen so gesehen. Das könnte der Fehler sein. Also machst Du einen Scriptbereich im Head auf und steuerst lediglich von dort den ganzen Vorgang.

(A) Dein Div bekommt eine id.
HTML:
<div id="Directory">Directory</div>
(B) Im Head muß Folgendes für saubere jQuery-Nutzung rein:
HTML:
<script type="text/javascript">                                         
    $(document).ready(function(){
        // Hier kommt der jQuery-Code rein.
    });                                   
</script>
(C) Der Code, der da rein muß, ist ein click-Event auf "Directory"
HTML:
$('#Directory').click(function(){ 
   // was passiert, wenn geklickt wird * siehe jsfiddle-Beispiel oben.
});
(D) und was passiert, hast Du ja schon essentiell gecodet.

mfg chmee

@CPoly : Nein, load() ist mir nicht unbekannt, und ich poche auch nicht auf die Nutzung von .get(). Anfangs war nicht ersichtlich, dass der JS-Code inline im onclick-tag hing. Und da vermute ich grad den Fehler. Das kann man nun mit einer Säuberungsaktion verbinden, man trennt den JS-Code vom HTML-Teil und schaut, was passiert. Zum Debuggen sicherlich auch nen Deut besser.
 
Zuletzt bearbeitet:
Achssooooooo :D Sag das doch gleich ^^ Okay, ich bastel da grad mal ein bisschen rum und schaue mal ob das klappt. Wenn das klappt dann muss ich den ganzen anderen onclick Müll den ich auf der Seite habe auch mal auslagern in den Head Bereich :D
 
Das ist kein gültiges JavaScript, deshalb wundert es mich, dass beim Server angeblich was an kommt.

Javascript:
$('#referenz').load('referenz_start.php?ref='5'') ;

(Man beachte die Anführungsstriche um die Zahl 5). Die Konsole sagt dann so was wie "SyntaxError: missing ) after argument list"


Edit: Aber was chmee sagt ist natürlich richtig, hat aber m.M. nichts mit dem Fehler zu tun. Aber dennoch solltest du deinen Code entsprechend chmee's Vorgaben anpassen.
 
Zuletzt bearbeitet:
Okay, also ich habe oben im Head Bereich schon ein

Code:
$(document).ready(function(){ 
};

weil ich da den Code für einen anderen Content Slider habe. Und wenn ich meinen Code in diesen Bereich einfüge, dann sieht es insgesamt so aus:

Code:
	<script type="text/javascript" charset="utf-8">		
	$(document).ready(function(){
		$("a[rel^='prettyPhoto']").prettyPhoto();
		$("#featured > ul").tabs({fx:{opacity: "toggle"}}); 
		$('#ref_digi1').click(function(){ 
			$('#referenz').load('referenz_start.php?ref=<we:field name="WE_ID" />') ;
			});
		  	
		});
	</script>

Das Problem ist, dass er mir dann meinen anderen Content Slider zerschießt. Also nehme ich mal an, dass ich etwas falsch mache?
 
Ich denke soweit klappt die Übertragung der Variable jetzt. Und es funktioniert trotzdem nicht. Denn ich muss die GET Var ja auch in der referenz_start.php auslesen und dem cms internen tag als id übergeben, damit er weiß welches objekt er laden soll - aber so wie es aussieht scheint webEdition (das CMS) innerhalb der we:Tags kein PHP zuzulassen :(

Code:
<we:object name="referenz" <?php echo "id=\"".$_GET['ref']."\""; ?> ><we:field type="text" name="Titel" /></we:object>

Habe mich diesbezüglich mal ins WebEdition Forum verzogen :D mal schauen ob da was raus kommt. Auf jeden Fall danke für das Aufzeigen des optimierungspotentials.


DONE : Also ich musste die PHP Variable nicht per PHP ausgeben sondern einfach ein \ vorsetzen, dann kann sogar webEdition mit ihr umgehen ^^

Vielleicht noch ein Tipp: Kann ich so eine Abfrage machen?

Code:
$('.showcase_choice_ref').click(function(){ 
			if (document.this.id = 'd1') {
                        machirgendwas;
                        }
}

Ich will überprüfen ob die id von dem element das geklickt wurde (das die klasse showcase_choice_ref hat) die id d1 hat. Ich weiß aber nicht ob die if Kondition document.this.id richitg ist.
 
Zuletzt bearbeitet:
Zurück