droom: PHP-Variable im JavaScript-Aufruf

Meine Funktion sieht folgender massen aus:
function first() {

$params=$_REQUEST["params"];

$out ="<select name='select2' onChange='aktualisieren2(this.name,this.value,".$params.")'><option>Jetzt waehlen</option>";
 ........
 $out .="</select>";

return $out;
}

wenn ich der Quellcode anschaue, dann ist $params richtig gesetzt aber der Funktion aufruft mit: aktualisieren2(this.name,this.value,".$params.") geht nicht. Wenn ich etwas wie aktualisieren2(this.name,this.value,this.value) dann geht es wohl.
Warum wird meine PHP-Variable nicht erkannt?

  1. Hellihello,

    wenn ich der Quellcode anschaue, dann ist $params richtig gesetzt aber der Funktion aufruft mit: aktualisieren2(this.name,this.value,".$params.") geht nicht. Wenn ich etwas wie aktualisieren2(this.name,this.value,this.value) dann geht es wohl.
    Warum wird meine PHP-Variable nicht erkannt?

    Deinem HTML-Quelltext ist es egal, wer ihn zusammengebaut hat. PHP spielt da nur dann eine Rolle, wenn PHP das was falsches reinschreibt. Im Quelltext darf ja nicht "$params" stehen sonder der etwaige Wert.

    Ansonsten ist die Funktion aktualisiern2() anzuschauen. Erst testen (ohne PHP), ob diese Korrekt funktioniert. Dann PHP so testen, dass es den richtigen Wert in den Quelltext schreibt.

    Gruß,

    frankx

    1. Deinem HTML-Quelltext ist es egal, wer ihn zusammengebaut hat. PHP spielt da nur dann eine Rolle, wenn PHP das was falsches reinschreibt. Im Quelltext darf ja nicht "$params" stehen sonder der etwaige Wert.

      Ja im Quelltext steht der richtige Wert und nicht $params.

      Ansonsten ist die Funktion aktualisiern2() anzuschauen. Erst testen (ohne PHP), ob diese Korrekt funktioniert. Dann PHP so testen, dass es den richtigen Wert in den Quelltext schreibt.

      Habe ich ja. deswegen meinte ich, es geht wenn nur javascript im Aufruf : aktualisieren2(this.name,this.value,this.value)

      und wenn ich aktualisieren2(this.name,this.value,$params) schreibe dann tut er nichts. Die Funktion wird erst gar nicht aufgerufen.

      Soweit ich jetzt bin, ist $params "undefined".

      1. Gelöst. ich musste so machen:

        $out  = '<select name="select2" onChange="aktualisieren2(this.name, this.value, '' . $params . '')"><option>Jetzt waehlen</option>';

        1. Hellihello

          Gelöst. ich musste so machen:

          $out  = '<select name="select2" onChange="aktualisieren2(this.name, this.value, '' . $params . '')"><option>Jetzt waehlen</option>';

          und zum anderen in Stringbegrenzer zu setzen

          das $params interessiert da erstmal nicht.

          Interessieren tut erstmal, was im Quelltext steht.

          Da kriegst Du dann raus, dass da nicht " irgendwas " stehen muss sondern " 'irgendwas' ".

          Dann weißt Du, was das für ein HTML-Javascript-Fehler ist und musst dann das PHP entsprechend anpassen, das es das raushaut.

          Gruß,

          frankx

  2. echo $begrüßung;

    $params=$_REQUEST["params"];
    $out ="<select name='select2' onChange='aktualisieren2(this.name,this.value,".$params.")'><option>Jetzt waehlen</option>";
    [...] geht nicht.

    "Geht nicht" ist keine Fehlerbeschreibung. Wenn du dir anschaust, wie die Fehlermeldung lautet, solltest du ihm einen Schritt näher kommen.

    Warum wird meine PHP-Variable nicht erkannt?

    Sie wird erkannt, aber vermutlich bekommst du keine gültige Javascript-Syntax, wenn du einfach einen Wert mitten in den Quelltext schreibst, ohne ihn zum einen kontextspezifisch zu kodieren, und zum anderen in Stringbegrenzer zu setzen.

    echo "$verabschiedung $name";

    1. Sie wird erkannt, aber vermutlich bekommst du keine gültige Javascript-Syntax, wenn du einfach einen Wert mitten in den Quelltext schreibst, ohne ihn zum einen kontextspezifisch zu kodieren, und zum anderen in Stringbegrenzer zu setzen.

      aha interessant und wie mache ich das? Ich kenne mich leider da nicht aus. :(

      danke im Voraus ^^