webentwicklung-frage-antwort-db.com.de

HTML-Formular senden an PHP Skript

Ich mache ein HTML-Formular. Ich möchte, dass die Ergebnisse im Skript PHP angezeigt werden.

<form action="chk_kw.php" method="post"> <br />
    <select> name="website_string" 
        <option value="" selected="selected"></option>
    <option VALUE="abc"> ABC</option>
    <option VALUE="def"> def</option>
        <option VALUE="hij"> hij/option>   
    </select>
    <input type="submit" name="website_string"  >
</form>

Das Problem ist, dass ich den Wert nicht an PHP übergeben kann. wenn ich Wert verwende:

<INPUT TYPE="submit" name="website_string" value="selected" >

Der Text wird immer in Anführungszeichen übergeben. In diesem Fall "selected". Wie übergebe ich eine der Zeichenfolgen aus der Option? 

17
Joe

Versuche dies:

<form method="post" action="check.php">
    <select name="website_string">
        <option value="" selected="selected"></option>
        <option VALUE="abc"> ABC</option>
        <option VALUE="def"> def</option>
        <option VALUE="hij"> hij</option>
    </select>
    <input TYPE="submit" name="submit" />
</form>

Sowohl Ihr Auswahlsteuerelement als auch Ihr Submit-Button hatten das gleiche name-Attribut. Das letzte verwendete Attribut war der Submit-Button, als Sie darauf geklickt haben. Alle anderen Syntaxfehler beiseite.

check.php

<?php
    echo $_POST['website_string'];
?>

Obligatorischer Disclaimer bezüglich der Verwendung von $_POST-Rohdaten. Desinfizieren Sie alles, was Sie tatsächlich in der Anwendungslogik verwenden .

39
jondavidjohn
<form method="POST" action="chk_kw.php">
    <select name="website_string"> 
        <option selected="selected"></option>
        <option value="abc">abc</option>
        <option value="def">def</option>
        <option value="hij">hij</option>   
    </select>
    <input type="submit">
</form>


  • Wenn Ihr Formular komplexer wird, können Sie Mit Hilfe von print_r($_POST);, Oben in Ihrem php -Skript eine schnelle Überprüfung durchführen. Dabei wird angezeigt, was gesendet wird, und der jeweilige Elementname.
  • Um den übermittelten Wert des betreffenden Elements abzurufen, führen Sie folgende Schritte aus:

    $website_string = $_POST['website_string'];

5
Babiker

Es scheint, dass Sie in PHP den Wert der Submit-Schaltfläche erhalten, nicht die Select-Eingabe. Wenn Sie GET verwenden, möchten Sie $_GET['website_string'] verwenden, oder POST wäre $_POST['website_string'].

Sie werden wahrscheinlich folgendes HTML benötigen:

<select name="website_string">
  <option value="" selected="selected"></option>
  <option value="abc">ABC</option>
  <option value="def">def</option>
  <option value="hij">hij</option>   
</select>
<input type="submit" />

Bei einigen PHP sieht das so aus:

<?php

$website_string = $_POST['website_string']; // or $_GET['website_string'];

?>
3
Kyle

Wenn Sie die Ergebnisse für Ihr aktuelles Formular einfach auf derselben Seite veröffentlichen, sollte dies wahrscheinlich in Ordnung sein. Versuchen Sie etwas wie:

<form action=<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?> method="POST>
0
TonyPall

Vorausgesetzt, Sie haben die Syntaxfehler behoben (Sie haben das Auswahlfeld vor dem Namensattribut geschlossen), verwenden Sie denselben Namen für das Auswahlfeld als die Schaltfläche zum Senden. Geben Sie der Auswahlbox einen anderen Namen.

0
Derek H

Hier finde ich Werke

  1. Setze einen form name
  2. Verwenden Sie zum Beispiel einen default select option ...

    <option value="-1" selected>Please Select</option>

Wenn also das Formular gesendet wird, kann die Verwendung von JavaScript zum Stoppen des Übermittlungsvorgangs auch auf dem Server implementiert und überprüft werden.

  1. Versuchen Sie, HTML5-Attribute zu verwenden, sobald diese unterstützt werden.

Diese Eingabe 

<input type="submit">

sollte sein

<input name="Submit" type="submit" value="Submit">

wenn ich ein fehlgeschlagenes Formular verwende, ist es ein Fehler, weil der Schaltflächenname submit und der Name Submit unterschiedlich ist.

Sie sollten auch Ihr Enctype-Attribut für Ihr Formular festlegen, da Formulare auf meinem Webhost fehlschlagen, wenn es nicht festgelegt ist.

0
Mark Giblin