wake-up-neo.com

Wie kann ich die Ausgabe von JavaScript-Variablen in einem PHP Variable?

Ich habe den folgenden Code in JavaScript:

<script>
var a="Hello";
</script>

PHP-Code: -

<?php 
$variable = // I want the above JavaScript variable 'a' value to be stored here
?>

Hinweis: Ich möchte es nicht in einer Formularübermittlung. Ich habe etwas Logik in JavaScript und möchte es auf derselben PHP Seite verwenden ... Bitte lassen Sie mich wissen, wie ich das machen kann.

10
logan

Sie müssen sich daran erinnern, dass, wenn JS und PHP im selben Dokument leben, das PHP zuerst (auf dem Server) und das JS als zweites (im Browser) ausgeführt wird. --und die beiden werden NIEMALS interagieren (außer wo Sie JS mit PHP ausgeben, was eigentlich keine Interaktion zwischen den beiden Engines ist).

In diesem Sinne können Sie am ehesten eine PHP -Variable in Ihrem JS verwenden:

<?php
$a = 'foo'; // $a now holds PHP string foo
?>
<script>
    var a = '<?php echo $a; ?>'; //outputting string foo in context of JS
                                 //must wrap in quotes so that it is still string foo when JS does execute
                                 //when this DOES execute in the browser, PHP will have already completed all processing and exited
</script>
<?php
//do something else with $a
//JS still hasn't executed at this point
?>

Wie ich bereits sagte, wird in diesem Szenario das PHP (ALLES) zuerst auf dem Server ausgeführt, wodurch Folgendes verursacht wird:

  1. eine PHP Variable $a, die als String 'foo' erstellt werden soll
  2. der Wert von $a, der im Kontext eines JavaScript ausgegeben werden soll (das derzeit nicht ausgeführt wird)
  3. mehr erledigt mit PHPs $a
  4. alle Ausgaben, einschließlich der JS mit der Var-Zuweisung, werden an den Browser gesendet.

Wie geschrieben, wird das Folgende zur Ausführung an den Browser gesendet (ich habe die JS-Kommentare aus Gründen der Klarheit entfernt):

<script>
    var a = 'foo';
</script>

Dann und nur dann wird das JS mit seiner eigenen Variablen a ausgeführt, die auf "foo" gesetzt ist (an diesem Punkt ist PHP nicht mehr im Bild).

Mit anderen Worten, wenn sich die beiden im selben Dokument befinden und keine zusätzliche Interaktion mit dem Server durchgeführt wird, kann JS in PHP KEINE Auswirkungen haben. Darüber hinaus ist PHP in seiner Auswirkung auf JS auf die einfache Fähigkeit beschränkt, einige JS oder etwas im Kontext von JS auszugeben.

15
JAAulde
<html> 
<head>
    <script>
        var a="Hello";
    </script>

</head> 

<body> 
    <?php 
        echo $variable = "<script>document.write(a)</script>"; //I want above javascript variable 'a' value to be store here
    ?>
</body> 

12
Chetan Ghadiya

Die ideale Methode wäre, sie mit einem Aufruf von AJAX zu übergeben, aber für eine schnelle und schmutzige Methode müssen Sie nur die Seite mit dieser Variablen in einem $_GET-Parameter neu laden. 

<script>
  var a="Hello";
  window.location.href = window.location.href+'?a='+a;
</script>

Ihre Seite wird neu geladen und jetzt haben Sie in Ihrem PHP Zugriff auf die Variable $_GET['a'].

<?php 
  $variable = $_GET['a'];
?>
2
Lix

Wenn dies mit einer Formularübergabe zusammenhängt, verwenden Sie eine ausgeblendete Eingabe innerhalb des Formulars und ändern Sie den ausgeblendeten Eingabewert in diesen Variablenwert. Dann können Sie den versteckten Eingabewert auf der PHP-Seite abrufen und nach der Formularübergabe Ihrer PHP-Variablen zuweisen.

Update:

Laut Ihrer Bearbeitung scheint es, als würden Sie nicht verstehen, wie Javascript und PHP funktionieren. Javascript ist eine clientseitige Sprache und PHP ist eine serverseitige Sprache. Daher können Sie keine Javascript-Logik ausführen und diesen Variablenwert für eine PHP-Variable verwenden, wenn Sie eine relevante Seite auf dem Server ausführen. Sie können die entsprechende Javascript-Logik ausführen, nachdem der Client-Browser die vom Webserver zurückgegebene Webseite verarbeitet hat (die den PHP-Code für die entsprechende Seite bereits ausgeführt hat). Nach der Ausführung des Javascript-Codes und nachdem der relevanten Javascript-Variablen der relevante Wert zugewiesen wurde, können Sie den JavaScript-Variablenwert mithilfe der Formularübergabe oder von ajax an eine andere PHP-Seite senden (oder eine Anforderung zur Verarbeitung und zum Abrufen derselben PHP-Seite ).

1
Manjula

Das kannst du wirklich nicht. PHP wird auf dem Server generiert und dann an den Browser gesendet, wo JS seine Arbeit beginnt. Was auch immer in JS auf einer Seite passiert, weiß PHP nicht, weil es bereits erledigt ist. @manjula ist korrekt. Wenn Sie dies wünschen, müssen Sie einen POST oder einen Ajax verwenden.

0
dmayo

JavaScript-Variable = PHP -Variable versuchen Sie es mit: -

<script>
var a="Hello";
<?php
$variable='a';
?>
</script>

Hinweis: -Es wird nur ausgeführt, wenn Sie PHP-Code unter Script-Tag ausführen.

0
Iron shield