JavaScript-Variable an PHP-Variable senden [duplicate]

Lesezeit: 6 Minuten

JavaScript Variable an PHP Variable senden duplicate
mrbunyrabit

Zuerst dachte ich, dass ich JavaScript in PHP umwandeln müsste, aber dann fand ich heraus, dass ich es aufgrund von server- und clientseitigen Ausführungen nicht kann. Also möchte ich jetzt einfach EINE Variable senden

<script type="text/javascript">
function scriptvariable()
{        
    var theContents = "the variable";
}
</script>

zu einer PHP-Variablen

<?php
$phpvariable
?>

Diese Funktion im JavaScript wird ausgeführt, wenn ich beispielsweise auf eine Schaltfläche klicke.

Jetzt habe ich keine Ahnung, wie ich diese php-Variable der JavaScript-Variable zuweisen soll, um die php-Variable zum Nachschlagen von Inhalten in meiner Datenbank zu verwenden. Ich weiß, dass ich es zu meiner URL oder etwas hinzufügen und die Seite aktualisieren kann, aber ich würde es gerne mit AJAX machen, da ich diese Ajax-Methode möglicherweise weiter auf meiner Webseite verwenden muss.

Gibt es also eine einfache Möglichkeit, dies zu tun, ohne Codeseiten auf meiner Seite ablegen zu müssen, um eine einfache Sache zu tun?

  • Haben Sie sich jQuery für die Implementierung von Ajax angesehen? Es kümmert sich um den größten Teil des unordentlichen Codes / der Arbeit.

    – Bryan

    19. November 2011 um 1:21 Uhr

  • Ich habe absolut keine Ahnung, was jQuery ist … Ill Google das und versuchen, ein bisschen mehr darüber herauszufinden.

    – Mrbunyrabit

    19. November 2011 um 1:22 Uhr

  • @Bryan Bevor Sie eine Bibliothek verwenden, lernen Sie, wie es geht. Zucker sollte hinzugefügt werden, nachdem Sie die Teetasse erhalten haben.

    – Zirak

    19. November 2011 um 1:24 Uhr

  • @Zirak Dem stimme ich nicht unbedingt zu. Es hängt von den Bedürfnissen des Benutzers ab. In der Frage wird erwähnt, dass Sie einen einfacheren Ansatz ohne viel zusätzlichen Code wünschen, den jQuery für Sie erledigt. Manche Leute wollen Autos bauen, andere wollen nur das Öl wechseln 🙂

    – Bryan

    19. November 2011 um 1:34 Uhr

  • @Bryan, ich stimme Zirak zu … jQuery ist nicht die endgültige Lösung. Recherche kann durchgeführt werden und eine kleinere JSON- oder Ajax-Bibliothek sollte dafür verwendet werden …. check out microjs.com …. Mit jQuery zu gerade run your ajax wäre, als würde man mit einer Kettensäge eine Pop-Dose öffnen. Es ist einfach viel zu übertrieben.

    – rlemon

    19. November 2011 um 6:59 Uhr

PHP läuft auf dem Server und Javascript läuft auf dem Client, daher können Sie eine PHP-Variable nicht gleich einer Javascript-Variable setzen, ohne den Wert an den Server zu senden. Sie können jedoch eine Javascript-Variable auf eine PHP-Variable setzen:

<script type="text/javascript">
  var foo = '<?php echo $foo ?>';
</script>

Um einen Javascript-Wert an PHP zu senden, müssen Sie AJAX verwenden. Mit jQuery würde es etwa so aussehen (einfachstes Beispiel möglich):

var variableToSend = 'foo';
$.post('file.php', {variable: variableToSend});

Auf Ihrem Server müssten Sie die per Post gesendete Variable erhalten:

$variable = $_POST['variable'];

  • Warum die Ablehnung? Das ist eine tolle Antwort…

    – Alex Wayne

    19. November 2011 um 1:27 Uhr


  • Was ist falsch an dieser Antwort?

    – Jordan Braun

    19. November 2011 um 1:27 Uhr

  • Ich weiß, dass ich etwas falsch mache … Ich weiß nur nicht, was … So habe ich diesen Code eingefügt <script type="text/javascript"> var variableToSend = 'foo'; $.post('file.php', {variable: variableToSend}); </script> ` ` ` dann erhalte ich diese Fehlermeldung, dass es sich um eine undefinierte Variable handelt… Hinweis: Undefinierter Index: Variable in (der PHP-Klammer) Irgendeine Idee, was ich falsch mache?

    – Mrbunyrabit

    19. November 2011 um 1:54 Uhr


  • @mrbunyrabit Sie müssen die jQuery-Bibliothek in Ihre Seite einfügen … andernfalls wird die von jQuery verwendete Variable “$” nicht definiert. Schauen Sie hier unter “vollständiges Beispiel”, um zu sehen, wie Sie es in Ihre Seite einfügen können. docs.jquery.com/Tutorials:How_jQuery_Works.

    – Bryan

    19. November 2011 um 2:02 Uhr


  • @Squeegy Einfache Ajax-Transaktionen benötigen ungefähr 6 Codezeilen

    – Zirak

    19. November 2011 um 12:48 Uhr

Wie Jordan bereits sagte, müssen Sie die Javascript-Variable an Ihren Server zurücksenden, bevor der Server den Wert verarbeiten kann. Dazu können Sie entweder eine Javascript-Funktion programmieren, die ein Formular absendet – oder Sie verwenden ajax / jquery. jQuery.post

Vielleicht ist der einfachste Ansatz für Sie so etwas

function myJavascriptFunction() { 
  var javascriptVariable = "John";
  window.location.href = "https://stackoverflow.com/questions/8191124/myphpfile.php?name=" + javascriptVariable; 
}

Auf Ihrer myphpfile.php können Sie verwenden $_GET['name'] nachdem Ihr Javascript ausgeführt wurde.

Grüße

  • Die leicht Ansatz ist oft auch der falsche Ansatz.

    – rlemon

    19. November 2011 um 6:56 Uhr

  • Sir, Ihre Antwort hat bei mir funktioniert! Danke! Ich habe den Fehler gemacht, Ihr Skript einfach so einzufügen (aus irgendeinem Grund ohne die Funktion), damit meine Seite wie ein Biest aktualisiert wird. aber ich habe es zu einer Funktion hinzugefügt, genau wie Sie es hatten, und es hat funktioniert! Danke!!!

    – Mrbunyrabit

    19. November 2011 um 12:22 Uhr


  • Kein Problem – Aber schützen Sie Ihre Seite unbedingt vor Cross Site Scripting / Attacken. Eine weitere Frage an Sie: Warum müssen Sie Javascript für diesen Ansatz verwenden? Sie könnten auch einen Link mein Link verwenden – ich bin nur interessiert 🙂

    – Grrbrr404

    20. November 2011 um 11:40 Uhr

  • Weißt du was … ich habe keine Ahnung, warum ich diese Methode von mir verwendet habe … haha, danke, dass du mir geholfen hast. Denke so lernt man..

    – Mrbunyrabit

    25. November 2011 um 16:38 Uhr


Es hängt davon ab, wie sich Ihre Seite verhält. Wenn Sie möchten, dass dies asynchron geschieht, müssen Sie AJAX verwenden. Probieren Sie “jQuery post()” bei Google aus, um einige Tuts zu finden.

In anderen Fällen, wenn dies geschieht, wenn ein Benutzer ein Formular absendet, können Sie die Variable in einem versteckten Feld senden oder anhängen ?variableName=someValue" bis zum Ende der URL, die Sie öffnen. :

http://www.somesite.com/send.php?variableName=someValue

oder

http://www.somesite.com/send.php?variableName=someValue&anotherVariable=anotherValue

Auf diese Weise können Sie von PHP aus auf diesen Wert zugreifen als:

$phpVariableName = $_POST["variableName"];

für Formulare mit POST-Methode oder:

$phpVariableName = $_GET["variableName"];

für Formulare, die die GET-Methode oder die Append-to-URL-Methode verwenden, die ich oben erwähnt habe (Abfragezeichenfolge).

  • Warum fast jede Antwort ablehnen? Wenn Sie sich die Post-Zeit ansehen, können Sie sehen, dass wir wahrscheinlich alle zur gleichen Zeit mit dem Schreiben begonnen haben. Ich finde einige Antworten großartig, wie Squeegy in der Antwort von Jordam Brown kommentierte.

    – Ricardo Souza

    19. November 2011 um 1:55 Uhr

  • dafür, dass das OP „installieren“ und jQuery für einen einfachen AJAX-Aufruf verwenden muss.

    – PeeHaa

    19. November 2011 um 17:41 Uhr

  • Warum nicht? Versuchen Sie, einem neuen Benutzer zu erklären, wie man einen browserübergreifenden AJAX-Aufruf in reinem JavaScript auf weniger als einer Seite durchführt.

    – Ricardo Souza

    10. Dezember 2012 um 14:26 Uhr

1001570cookie-checkJavaScript-Variable an PHP-Variable senden [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy