Onclick, Javascript, PHP und Mozilla

Suspicionless

Grünschnabel
Hey Leute...
Also ich verzweifel hier jetzt schon seit mehreren Stunden an einem blöden Problem! Wie immer halt *gg*
Also kurz zu meinem Vorhaben:
Ich will das ein Text per php dursucht wird (genauer gesagt per str_replace) und dann wenn ein Wort aus der Datenbank gefunden wird (geht um definitionen von Fremdwörtern) dies ersetzt wird durch einen Link, klcikt man auf einen Link, so öffnet sich ein popup mit der Definition! Leichter gesagt als getan ^^
ich habe eine index.php, wo der javascript code und der PHP code drin ist:

Code:
<?php 

			$sqlhost="localhost";
			$usern="root";
			$passwort="";
			$database="datenbank";
		$db= mysql_connect ($sqlhost,$usern,$passwort);
			mysql_select_db ($database);
		$select="SELECT * FROM definitionen WHERE def='$type1'"; 
	  	$result= mysql_query($select,$db);
		while ($daten= mysql_fetch_object($result))
		{				
echo("<script language=\"javascript\">\n
	function hinweis()\n
	{
			
    var neuesFenster = open(\"\",\"$daten->titel\",\"height=150,width=200\");
    neuesFenster.document.open();
    
    neuesFenster.document.write(\"<html><head>\");
    neuesFenster.document.write(\"<title>$daten->titel</title></head>\");
    neuesFenster.document.write(\"<body><p>$daten->definition</p>\");
	neuesFenster.document.write(\"<p></p>\");
	neuesFenster.document.write(\"<p>$daten->quelle</p>\");
    neuesFenster.document.write(\"</body></html>\");
    neuesFenster.document.close();
    }


</script>");
}
?>

dann habe ich den text der dursucht werden soll:
Code:
<?php
$text='[...]';

include('def_replaces.php');

?>

und dann die Datei die den Link erstellt(def_replaces.php):

Code:
<?php 	$text= str_replace("Gründe", "<a href='index.php?type1=gruende&action=$action&site=$site' OnClick='javascript: hinweis();'/>Gründe</a>",$text);

?>

So, das waren auch eigentlich schon alle dateien, die ich hab und eigentlich auch brauch (c; Teile wurden natürlich weggelassen die ich nicht für erwähnenswert hielt, doch auf wunsch kann ich ja mal alle files zippen und uppen!
Mein Problem ist jetzt:
Im IE sagt er mir das es nen Javascript fehler gibt, debuggt ihn und beim erneuten klicken auf den Link klappts... toll, aber mein Firefox sieht das nich ganz so relaxed... der macht dann einfach gar nichts und wenn ich in die JavaScript-Konsole geh sagt er: "Fehler: hinweis is not defined"
Hat jemand ne Idee? :confused:
 
$daten->titel
$daten->definition
$daten->quelle

...dürfen weder Anführungszeichen, noch Zeilenumbrüche enthalten. Ist dies der Fall?

Poste mal den Code, wie in dir der Browser unter "Quelltext"anzeigt.
 
Hier der Javascript code wies in Quelltext anzeigen steht:
Code:
<script language="javascript">

	function hinweis()

	{
			
    var neuesFenster = open("","Gründe","height=150,width=200");
    neuesFenster.document.open();
    
    neuesFenster.document.write("<html><head>");
    neuesFenster.document.write("<title>Gründe</title></head>");
    neuesFenster.document.write("<body><p>blablubb</p>");
	neuesFenster.document.write("<p></p>");
	neuesFenster.document.write("<p>blablubb</p>");
    neuesFenster.document.write("</body></html>");
    neuesFenster.document.close();
    }


</script>
Also daran liegts wohl nicht... aber später wird das sicher nochmal ein problem... schonmal was ausdenken ^^

EDIT:
Also ich hab jetzt nochmal weiter rumprobiert und es geht jetzt teilweise!
Jetzt ist noch folgendes Problem, was aber mehr wohl ein Verständigungs Problem zwischen php/Javascript ist, aber vielleicht hat ja wer ne Idee:
Ich klicke erst auf einen Link zu der Seite:
index.php?site=action&action=gruende_R
So, dort wird dann ein Wort ersetzt, im Test war es das Wort "Gründe" und folgender Link kommt zu Stande:
index.php?type1=gruende&action=gruende_R&site=action
gut, kein Problem, aber es tut sich nichts! Wenn ich allerdings nochmal auf den gleichen Link klicke, geht das Popup auf! Der Fehler beim ersten Mal ist wie oben auch das hinweis() nicht definiert ist. Im Quelltext steht auch das Javascript da noch nicht. Ich bin absolut überfordert... :confused:
 
Zuletzt bearbeitet:
Auf den ersten Blick lässt sich da nix entdecken.

Probiere mal in dem Code, den du per write() ausgibst, alle spitzen Klammern und Slashes zu escapen.

Zu dem später anfallende Problem.... da kannst du die Variablen in JS nach dem Prinzip
Code:
write(unescape('<?php echo rawurlencode($var);?>'));
ausgeben.

Die JS-Methode unescape() verwandelt einen in PHP per rawurlencode() kodierten String wieder in die Ursprungsform....da gibts dann keine Zeichen, welche JS stören könnten.
 
Hey,
Also ich werde es jetzt auf ne andere, leichtere Art probieren, die ich schon vorher hätte machen sollen! Ich öffne einfach ne neue PHP Datei und lass es da auslesen, irgendwie leichter *g*

Das mit dem escapen hab ich nicht so ganz verstanden, wie meinst du das? Bin ja noch relativ neu in Javascript...

mfg,
Suspi
 

Neue Beiträge

Zurück