PHP Arrray in Javascript Funktion übergeben

eee

Mitglied
Ich erstelle einige Buttons mittels PHP Schleife und habe zu jedem Button einen kleinen Ausgabetext, den ich aus einer Datenbank auslese! Nun möchte ich, wenn ich auf einen Button klicke den passenden Ausgabetext erhalten. Weiß irgendjemand wie ich mein PHP Array in die JS Funktion übergebe? Vielen Dank!

PHP:
echo '<form name="formular" action="">';
	$n = 1;
	$text = array();
	while ($ausgabe = $ergebnis->fetch_assco()) {
		echo '<input type="button" value="' .  $ausgabe['buttonvalue'] . '" id ="' . $n . '" onclick="ausgabe(this)">';
		$text[$n] = $ausgabe['text'];
		$n = $n + 1;
	}
echo '</form>';

PHP:
<script type="text/javascript">
		function ausgabe(ref) {
			alert('?');
		}
</script>
 
Zuletzt bearbeitet:
Du kannst Javascript-Code auch mit PHP ausgeben. Dafür solltest du aber in deinem Beispiel den HTML-Quelltext nicht direkt mit echo rausfeuern, sondern erst in einer Variable speichern, damit du später den JS-Teil im Head-Bereich des Dokuments stehen hast und nicht mitten im Formular.

Sinngemäß & ungetestet:

PHP:
$form = '<form name="formular" action="">';

$js = '
<script type="text/javascript">
var formarray = new Array()';

$n = 1;

while ($ausgabe = $ergebnis->fetch_assoc()) { //hier hattest du nen Tippfehler drin
        $form .= '<input type="button" value="' .  $ausgabe['buttonvalue'] . '" id ="' . $n . '" onclick="ausgabe(this)">';

        $js .= 'formarray['.$n.'] = "'.$ausgabe['text'].'";';

        $n++; //ist kürzer
}

$form .=  '</form>'; 

$js .= '</script>';


//und jetz raus damit

echo '
<!DOCTYPE html>
  <head>
    <title>Jawoll</title>'.$js.'
  </head>
  <body>'.$form.'</body>
</html>';


Noch ein Hinweis:
PHP:
echo '<input type="button" value="' .  $ausgabe['buttonvalue'] . '" id ="' . $n . '" onclick="ausgabe(this)">';

Du legst für die ElementIDs einen numerischen Wert fest. Das erste zeichen muss hier aber ein Buchstabe sein.
 
Du kannst Javascript-Code auch mit PHP ausgeben. Dafür solltest du aber in deinem Beispiel den HTML-Quelltext nicht direkt mit echo rausfeuern, sondern erst in einer Variable speichern, damit du später den JS-Teil im Head-Bereich des Dokuments stehen hast und nicht mitten im Formular.

Danke für die Hilfe. An die Möglichkeit den JS Code direkt in der Schleife zu erstellen, habe ich überhaupt nicht gedacht. Hat es Nachteile, wenn die JS Funktion nicht im Head-Bereich steht? Meinen HTML Header rufe ich nämlich per Funktion aus einer Funktionsbibliothek auf:

PHP:
require_once('funktionsbib.php');
html_header('Titel eingeben');

In meiner JS Datei, mit "<script src="javascript.js" type="text/javascript" charset="utf-8"></script>" im Head-Bereich eingebunden, habe ich bisher nur ein paar kleine Funktionen zum Aus- bzw. Einblenden von Formularelementen.
 

Neue Beiträge

Zurück