我无法在变量中获得值

时间:2014-11-08 17:01:10

标签: php

<html>
   <head>
    <title>Panier</title>
       <?php
          $tot = 'test';
          $m1 = $_POST['montant1'];
       ?>
    </head>

  <body>
    <h1>Panier</h1>
    <table border=1>
    <form action="panier.php" method="POST">
        <tr><td>Produit</td><td>Quantite</td><td>Prix Unitaire</td><td>Action</td><tr>
        <tr><td>Produit 1</td><td><input type='text' name='montant1' value='2'></form></td><td>3.19</td><td><a href=>Supprimer</a></tr>
    </form> 
    </table>
  </body>
</html>

由于某种原因,我的变量$ m1无法获得输入文本字段内的内容&#39; montant1&#39;

3 个答案:

答案 0 :(得分:0)

如果您向我们展示的文件未被调用&#34; panier.php&#34;,请尝试替换

<form action="panier.php" method="POST">

使用以下代码:

<form action="" method="POST">

将导致表单提交到它来自的相同URL。

答案 1 :(得分:0)

我注意到您没有在表单中添加提交按钮,因此无法向前推送数据!在文本输入标记之后添加(在表单中)。

<input type="submit" value="Submit your form">

假设您要发布到同一页面。用这个替换你的PHP代码:

 <?php
    if($_POST){
     $tot = 'test';
     $m1 = $_POST['montant1'];
    }
?>

这样,只有存在数据才能处理数据。

此外,如果您要在同一页面上发布,建议放置$_SERVER['PHP_SELF']而不是页面名称。这样,如果重命名文件,则无需处理代码更改。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

答案 2 :(得分:0)

首先格式化代码,使其可读。它可以帮助你调试,而不是犯错误。

有几个明显的问题: -

您有2个结束表单标记</form>

至少有一个缺失</td>

您没有提交按钮。

获取逻辑提交内容的代码应该放在脚本的顶部。

您需要某种方法来判断这是否是第一次执行脚本,因为在这种情况下,$ _POST上没有传递数据。

所以试试这个,基本上你的代码有点清理。

<?php
    $tot = 'test';
    $m1 = isset($_POST['montant1']) 
                 ? $_POST['montant1'] 
                 : 'First run, the submit button has not been pressed yet';
?>
<html>
<head>
    <title>Panier</title>
</head>
<body>
    <h1>Panier</h1>
<?php
    echo 'You entered : ' . $m1;
?>

    <table border=1>

    <form action="panier.php" method="POST">
        <tr>
           <td>Produit</td>
           <td>Quantite</td>
           <td>Prix Unitaire</td>
           <td>Action</td>
        <tr>
        <tr>
           <td>Produit 1</td>
           <td><input type='text' name='montant1' value='2'></td>
           <td>3.19</td>
           <td><a href=>Supprimer</a></td>
           <td><input type="submit" name="submit"></td>
        </tr>
    </form>

    </table>
</body>
</html>