airbastl
Goto Top

MySQL Daten zu Javascript übergeben

Ich stehe gerade etwas auf dem Schlauch, aber vlt. fällt dem ein.. oder anderen das Problem gleich auf.

Die Datenbank soll ausgelesen und in ein PHP-Array gespeichert werden. Danach möchte ich den jeweils angeklickten Datensatz zu einer Javascriptfunktion weiterleiten.
Wenn ich das Array fix anspreche, funktioniert alles so wie gewollt. Ich muss also einen Denkfehler in meiner Variable "i" haben.


Code:

	$i = 0;
    while($kbase = mysql_fetch_object($anzeigen))
    {
        $Name[$i] = $kbase->Name;
		$Inhalt[$i] = $kbase->Inhalt;
		$Datum[$i] = $kbase->Datum;
		
		echo "<script type=\"text/javascript\">var test = \"".$Name[$i]."\";</script>"; ?><a href="#" onclick="javascript:open_inhalt(test);"><?php echo $Name[$i];?></a> <?php  
		$i++;
    }

Content-Key: 264743

Url: https://administrator.de/contentid/264743

Printed on: April 25, 2024 at 12:04 o'clock

Member: eisbein
eisbein Feb 27, 2015 updated at 09:16:44 (UTC)
Goto Top
Guten Morgen!

Dafür sollte doch mysql_fetch_array hilfreich sein.

Und mach dich mal mit Ajax und json vertraut.

Hast du schon versucht, die Variable 'test', außerhalb der While-Schleife zu deklarieren und dann nur den Wert zuzuweisen?`

Gruß
Eisbein
Member: Airbastl
Airbastl Feb 27, 2015 updated at 09:35:13 (UTC)
Goto Top
Danke Eisbein für deine Hilfe, ja schicker ist es mit fetch_array, da hast du recht face-smile

habe mir gerade auch json angeschaut, jedoch funktionierte auch diese Lösung nicht.

Problem bei der Sache ist, er übermittelt immer den letzten Datensatz aus dem Array bzw. aus der DB. (Ist auch verständlich, jedoch komme ich nicht auf eine funktionierende Idee)


Die Variable test wird ordnungsgemäß übergeben, jedoch immer mit dem letzten DS.
Member: eisbein
eisbein Feb 27, 2015 updated at 09:42:19 (UTC)
Goto Top
Wie sieht denn die Datenbankabfrage aus?
Welchen Wert hat i am Ende? Werden wirklich alle Datensätze abgefragt?

Teste:
<a href="#" onclick="javascript:open_inhalt(<?php echo $Name[$i];?>);">  
Warum?
Zuerst wird PHP am Server ausgeführt und dann erst Javascript am Client - somit wird test überschrieben face-smile
Member: Airbastl
Airbastl Feb 27, 2015 updated at 10:00:35 (UTC)
Goto Top
$anzeigen = mysql_query("SELECT * FROM IT_Kbase WHERE Rubrik = '".$get_rubrik[1]."'");  
	$i = 0;
    while($kbase = mysql_fetch_array($anzeigen, MYSQL_ASSOC))
    {
        $Name[$i] = $kbase["Name"];  
		$Inhalt[$i] = $kbase["Inhalt"];  
		$Datum[$i] = $kbase["Datum"];  
		
		 ?><a href="#" onclick="javascript:open_inhalt(<?php echo $Name[$i];?>);"><?php echo $Name[$i];?></a> <?php   
		$i++;
    }


Mit dem PHP-Inhalt im Funktionsaufruf passiert Seitens JS gar nichts mehr.

$i hatte zuvor in der JS-Ausgabe immer den Wert 4.
Member: eisbein
eisbein Feb 27, 2015 at 10:02:15 (UTC)
Goto Top
Nunja, so evtl. face-smile

onclick="javascript:open_inhalt(\"<?php echo $Name[$i];?>\");"  

sonst wird von einer Variable ausgegangen, die es nicht gibt
Member: Airbastl
Airbastl Feb 27, 2015 at 10:17:06 (UTC)
Goto Top
Ja natürlich, manchmal steht man aber auch auf dem Schlauch face-smile
Vielen Dank, mittels ' ' funktioniert es auch wie gewollt face-smile

Somit ist das Problem gelöst, besten Dank Eisbein