$_POST 未在 PHP 脚本中运行表单


$_POST not running for the form inside PHP script

我正在PHP脚本中制作form,当我尝试访问字段时的form在同一脚本中,它给了我错误 未定义的索引

这是我的代码:

<?php
    $query="SELECT * FROM `vendor_list`";
    $query_run=mysql_query($query);
    if(mysql_num_rows($query_run)>0)
    {
        echo '<form method="POST">';
        echo 'Book name:<input type="text" name="book_name"  size="40"  maxlength="40"><br><br>';
        echo 'Number Of Copies:<input type="text" size="5" name="num_copies" maxlength="2"><br><br>';
        echo '<select name="vendor_email">';
        while($query_row=mysql_fetch_assoc($query_run))
        {
            $laser=$query_row['vendor_name'];
            $email=$query_row['email'];
            echo "<option value='".$email."'>".$laser."</option>";
        }
        echo '</select><br>';
        echo '<input type="submit" value="submit">';
        echo '</form>';
    }
    else
    {
        echo 'No vendor to display';
    }
    echo $_POST['book_name'];

使用这个:-

    <?php
        $query="SELECT * FROM `vendor_list`";
        $query_run=mysql_query($query);
        if(mysql_num_rows($query_run)>0)
        {
            echo '<form method="POST">';
            echo 'Book name:<input type="text" name="book_name"  size="40"  maxlength="40"><br><br>';
            echo 'Number Of Copies:<input type="text" size="5" name="num_copies" maxlength="2"><br><br>';
            echo '<select name="vendor_email">';
            while($query_row=mysql_fetch_assoc($query_run))
            {
                $laser=$query_row['vendor_name'];
                $email=$query_row['email'];
                echo "<option value='".$email."'>".$laser."</option>";
            }
            echo '</select><br>';
            echo '<input type="submit" value="submit">';
            echo '</form>';
        }
        else
        {
            echo 'No vendor to display';
        }

if($_POST){
 echo $_POST['book_name'];
}
    ?>

试试这个

    <?php
            $query="SELECT * FROM `vendor_list`";
            $query_run=mysql_query($query);
            if(mysql_num_rows($query_run)>0)
            {
?>
                <form method="POST" action="">
                Book name:<input type="text" name="book_name"  size="40"  maxlength="40"><br><br>
                Number Of Copies:<input type="text" size="5" name="num_copies" maxlength="2"><br><br>
                <select name="vendor_email">
<?php
                while($query_row=mysql_fetch_assoc($query_run))
                {
                    $laser=$query_row['vendor_name'];
                    $email=$query_row['email'];
                    echo "<option value='".$email."'>".$laser."</option>";
                }
?>
                </select><br>
                <input type="submit" name="submit" value="submit">
                </form>
<?php
            }
            else
            {
                echo 'No vendor to display';
            }

    if(isset($_POST["submit"]))){
     echo $_POST['book_name'];
    }
        ?>

The Clean Way

您在该代码中的所有中断都是一团糟......

提示 当您回显太多 HTML 时,只需将其包装在 if..还。。喜欢这个。。。

<?php
  $query = "SELECT * FROM `vendor_list`";
  $query_run = mysql_query($query);
?>
<?php if(mysql_num_rows($query_run)>0): ?>
  <form method="POST">
    <label for="book_name">Book name:</label>
    <input type="text" name="book_name" id="book_name" size="40"  maxlength="40">
    <label for="book_name"Number Of Copies:</label>
    <input type="text" size="5" name="num_copies" maxlength="2">
    <select name="vendor_email">
      <?php while($query_row=mysql_fetch_assoc($query_run)): ?>
          <option value="<?=$query_row['email']?>"><?=$query_row['vendor_name']?></option>
      <?php endwhile; ?>
    </select>
    <input type="submit" value="submit">
  </form>
<?php else: ?>
    <p>No vendor to display</p>
<?php endif; ?>
<?php  if (isset($_POST['book_name'])) echo $_POST['book_name']; ?>

使用以下代码,这也将检查您是否有表单提交,除非此代码是剪切/复制粘贴。看起来它会在不应该处理部分时处理部分。例如回声帖子..

就我个人而言,我自己会将 action=" 设置为 PHP_SELF,因为多年前遇到了问题,一旦我开始使用 HTML5,当它的跨浏览器足够/老用户更新他们的浏览器时,这种情况很快就会改变。

处理

或显示帖子的示例,但不能同时处理两者。

        echo $_POST['book_name'];
        echo "POST Dump: " . print_r($_POST, true);
    } else {
        // No Form Submission, So we generate the form instead
        // QUERY - data
        $query = "SELECT * FROM 'vendor_list'";
        $query_run = mysql_query($query);
        if(mysql_num_rows($query_run)>0) {
            // FORM - Name/#Copies
            echo '<form method="POST" action="' . $_SERVER['PHP_SELF'] . '">';
            echo 'Book name:<input type="text" name="book_name"  size="40"  maxlength="40"><br><br>';
            echo 'Number Of Copies:<input type="text" size="5" name="num_copies" maxlength="2"><br><br>';
            // FORM - Select Vendor
            echo '<select name="vendor_email">';
            while($query_row=mysql_fetch_assoc($query_run))
            {
                $laser=$query_row['vendor_name'];
                $email=$query_row['email'];
                echo "<option value='".$email."'>".$laser."</option>";
            }
            echo '</select><br>';
            // FORM - Submit / Close Form
            echo '<input type="submit" value="submit">';
            echo '</form>';
        } else {
            echo 'No vendor to display';
        }
    }
?>

或者使用显示表单的代码并处理任何 $_POST

<?php
    // QUERY - data
    $query = "SELECT * FROM 'vendor_list'";
    $query_run = mysql_query($query);
    if(mysql_num_rows($query_run)>0) {
        // FORM - Name/#Copies
        echo '<form method="POST" action="' . $_SERVER['PHP_SELF'] . '">';
        echo 'Book name:<input type="text" name="book_name"  size="40"  maxlength="40"><br><br>';
        echo 'Number Of Copies:<input type="text" size="5" name="num_copies" maxlength="2"><br><br>';
        // FORM - Select Vendor
        echo '<select name="vendor_email">';
        while($query_row=mysql_fetch_assoc($query_run))
        {
            $laser=$query_row['vendor_name'];
            $email=$query_row['email'];
            echo "<option value='".$email."'>".$laser."</option>";
        }
        echo '</select><br>';
        // FORM - Submit / Close Form
        echo '<input type="submit" value="submit">';
        echo '</form>';
    } else {
        echo 'No vendor to display';
    }
    if (isset($_POST['book_name'])) {
        echo "<b>Displaying post data</b> <br />";
        echo "Example book: " . $_POST['book_name'] . "<br />";
        echo "POST Dump: <br /><pre>" . print_r($_POST, true) . "</pre>";
    } else {
        echo "Page has not been subitted yet, please select an item";
    }
?>