Ich habe ein einfaches HTML-Formular mit einem Eingabetextfeld und einer Schaltfläche zum Senden. Jetzt möchte ich JavaScript verwenden, um den vom Benutzer nach dem Absenden des Formulars in das Textfeld eingegebenen Inhalt anzuzeigen.

Hier ist der Code meines Formulars:

<form method = "POST">
   <input type = "text" name = "tweet1" />
   <br>
   <input type = "submit" onclick = "postResul()" />
</form>

Beim Klicken auf die Schaltfläche "Senden" wird die Funktion postResul() aufgerufen:

<script>

function postResul()
{
    var htmlString="<?php echo $_POST['tweet1']; ?>";
    alert(htmlString);
}

</script>

Jetzt werden diese beiden Codefragmente in einer PHP-Datei gespeichert. Beim Absenden des Formulars werden die im Eingabeformular eingegebenen Daten jedoch nicht angezeigt. Ich zeige die Variable $_POST['tweet1'] an, um den vom Benutzer übermittelten Eintrag anzuzeigen.

Was scheint hier falsch zu sein? Benutze ich die Variable $_POST in PHP falsch?

-1
Manas Chaturvedi 23 Aug. 2015 im 22:36

5 Antworten

Sie müssen eine andere Datei erstellen. Ändern Sie Ihren Code in:

<form method="POST" action="another.php" >
   <input type = "text" name = "tweet1" />
   <br>
   <input type = "submit"  />
</form>

In der Datei another.php können Sie die Variable dann anzeigen:

<?php echo htmlspecialchars($_POST['tweet1'], ENT_QUOTES, 'UTF-8'); ?>
0
SimZal 23 Aug. 2015 im 19:44

Wenn Sie die jquery-Bibliothek verwenden, können Sie dies tun

<form method="POST">
   <input type = "text" name = "tweet1" class="tweet" />
   <br>
   <input type = "submit" class="submit" />
</form>

$('.submit').click(function(e){
    alert($('.tweet').val());
    e.preventDefault();
});

Jsfiddel Arbeitsbeispiel http://jsfiddle.net/mdamia/j3w4af2w/2/

0
mdamia 23 Aug. 2015 im 20:09

Sie können $_POST['tweet1'] nicht verwenden, um den Wert abzurufen, wenn Sie eine Javascript-Funktion aufrufen. Grundsätzlich sind Client- und Serverseite völlig unterschiedlich.

Sie können das Ergebnis mit Javascript erhalten als:

function postResul()
{
    var htmlString= document.getElementsByName("tweet1")[0].value;
    alert(htmlString);
}

In HTML:

<form method = "POST">
   <input type = "text" name = "tweet1"/>
   <br>
   <input type = "submit" onclick = "postResul()" />

</form>

Hinweis: Die obige Funktion wird auf der Clientseite und nicht auf der Serverseite ausgeführt.

$_POST kann verwendet werden, um Werte des übermittelten Formulars auf einer PHP-Seite abzurufen.

Prost.

1
Roy M J 23 Aug. 2015 im 19:45

Sie sollten das Formular anders verwenden

<form method="POST">
   <input type = "text" name = "tweet1" />
   <br>
   <input type = "submit" />
</form>

Test.php Datei

<?php
return json_encode([1, 2, 3]);

Js

$('form').on('submit', function() {
   $.post('test.php', {}).done(function(response) {
      alert(response);
   })
})

Etwas wie das. Hoffe es ist nützlich.

0
Alejandro Garcia Anglada 23 Aug. 2015 im 19:46

Das sollte funktionieren:

function postResul()
{
    var htmlString=document.getElementsByName("tweet1")[0].value;
    alert(htmlString);
}

Sie sollten jedoch mehr darüber lesen, wie clientseitige und serverseitige Sprachen funktionieren.

1
John Bupit 23 Aug. 2015 im 19:44