6 Stimmen

PHP-Variable aus JavaScript wiedergeben?

Ich habe eine PHP-Seite mit einigen JavaScript-Code auch, aber diese JavaScript-Code unten scheint nicht zu funktionieren, oder vielleicht bin ich Weg aus!

Ich versuche etwas in dieser Richtung:

  var areaOption=document.getElementById("<?php echo @$_POST['annonsera_name']?>");
  areaOption.selected=true;

Ich habe dies auch versucht, aber es wird nur ein leeres Alarmfeld angezeigt:

    alert (<?php echo $test;?>); // I have tried this with quotes, double-quotes, etc... no luck

Denke ich hier völlig falsch?

UPDATE

Etwas PHP-Code:

    <?php 
        $test = "Hello World!";
    ?>

11voto

micahwittman Punkte 11930

In Ihrem zweiten Beispiel fehlen Anführungszeichen um die Zeichenkette (so dass H als Variable interpretiert wird - die Sie nicht gesetzt haben).

Testen Sie dies:

alert (<?php echo "'H'";?>);

OR

alert ('<?php echo "H";?>');

6voto

bobince Punkte 512550

Verwenden Sie json_encode um einen Text (oder einen anderen Datentyp) in ein JavaScript-Literal zu konvertieren. Nicht Setzen Sie einfach Anführungszeichen um die geechobene Zeichenkette - was ist, wenn die Zeichenkette ein Anführungszeichen, einen Zeilenumbruch oder einen Backslash enthält? Im besten Fall schlägt Ihr Code fehl, im schlimmsten Fall haben Sie eine große, alte Sicherheitslücke beim Cross-Site-Scripting.

Also,

<?php
    function js($o) {
        echo json_encode($o, JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP);
    }
?>
<script type="text/javascript">
    var areaOption= document.getElementById(<?php js($_POST['annonsera_name']); ?>);
    areaOption.selected= true;
    alert (<?php js('Hello World'); ?>);
</script>

4voto

Benoît Vidis Punkte 3826

PHP läuft auf der Serverseite und Javascript läuft auf der Clientseite.

Der Prozess besteht darin, dass PHP das Javascript generiert, das auf der Client-Seite ausgeführt wird.

Sie sollten in der Lage sein, das generierte JS zu überprüfen, indem Sie sich den Code ansehen. Wenn das JS auf einigen PHP-Variablen beruht, müssen diese natürlich instanziiert werden avant wird die JS ausgegeben.

<?php
$test = 'Hello world';
?>
<html>
    <body>
        <script>
            alert('<?php echo $test; ?>');
        </script>
    </body>
</html>

wird funktionieren, aber

<html>
    <body>
        <script>
            alert('<?php echo $test; ?>');
        </script>
    </body>
</html>
<?php
$test = 'Hello world';
?>

wird nicht

0voto

K Prime Punkte 5719

Ihre Verwendung @$_POST zeigt an, dass Sie Fehler erhalten haben (oder erwarten) - überprüfen Sie Ihren generierten Quelltext, um festzustellen, ob der Wert korrekt ausgegeben wurde. Andernfalls document.getElementById wird fehlschlagen und Sie erhalten keine Ausgabe.

-1voto

streetparade Punkte 30394
 alert("Delete entry <? echo $row['id']; ?> ")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X