如何在单击按钮时运行php?

时间:2014-02-09 21:43:17

标签: php html

我想在点击提交按钮时运行一个php页面,这是我的代码:

    echo "<tr><td colspan=3>
    <form method='post'><table><tr><td>
    <h4>Quantity</h4></td><td><input type=text name='qnt' /></td><td>
    <input type='button' value='Add to card' name='buy' /></td></tr></table>
    </form>
    </td></tr>";

      if(isset($_POST['buy'])){
        echo "<script type='text/javascript'> alert('successful'); </script>";
    include("addtocard.php");
  }

5 个答案:

答案 0 :(得分:1)

绝对安全,应该有两个变化:

  <form method='post'> 

应该有一个action属性,指向服务器上文件的位置即。

<form method='post' action="/myfile.php">

还:

<input type='button' value='Add to card' name='buy' />  

应该是

<input type='submit' value='Add to card' name='buy' />

答案 1 :(得分:1)

似乎其他几个人已经采取行动来回答这个问题,但我认为他们在这里错过了你的代码的基本问题。 PHP不在客户端运行,只在服务器端运行。您需要(正如其他人所说)将表单实际提交给PHP服务,以检查用户输入表单的值。

您可能希望更多地了解PHP的工作原理,因为它输出HTML会让您感到困惑,但在用户看到的实际网页上根本不存在。来自PHP文档的This link可能会有所帮助。

答案 2 :(得分:0)

变化

<input type='button' value='Add to card' name='buy' />

<input type='submit' value='Add to card' name='buy' />

答案 3 :(得分:0)

您可能希望将值从“按钮”更改为“提交”它可能有效。祝你好运,这是一个例子:

<input type="submit" value='Add to card' name="buy" action= "<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"/>

修改 下面的用户谈到了这个动作,完全忘了,但是,你的代码似乎将它移植到文件中,因此你可以使用这个例子。祝你好运。

编辑2: PHP_SELF有一个我完全忘记的漏洞利用。我用它更新了代码。代码有什么问题?看起来很好。

答案 4 :(得分:0)

我使用已经提到的一些内容测试了您的代码,包括comment中的内容,包括在表单输入中输入的数量。

旁注: 不知道addtocard.php文件中的内容,我使用自己的基本代码来生成(重现)成功的测试。注释包括在下面。

是:

<?php
    echo "<tr><td colspan=3>
    <form method='post'><table><tr><td>
    <h4>Quantity</h4></td><td><input type=text name='qnt' /></td><td>
    <input type='submit' value='Add to card' name='buy' /></td></tr></table>
    </form>
    </td></tr>";

      if(isset($_POST['buy'])){
    echo "<script type='text/javascript'> alert('successful'); </script>";
    include("addtocard.php");

}

旁注:您还可以为表单的操作添加action=''

即:<form method='post' action=''>将以“自我”身份提交。

以下addtocard.php内部我自己进行测试,产生了成功的结果。

<?php
$qnt = $_POST['qnt'];
echo "Quantity: " . $qnt;

并在表单内输入数字100,实际上是回显100,它确实产生了successful的弹出警报。

您还可以使用添加的条件语句来检查是否设置了提交按钮,以及是否输入了数量:

<?php
    echo "<tr><td colspan=3>
    <form method='post'><table><tr><td>
    <h4>Quantity</h4></td><td><input type=text name='qnt' /></td><td>
    <input type='submit' value='Add to card' name='buy' /></td></tr></table>
    </form>
    </td></tr>";

      if(isset($_POST['buy']) && !empty($_POST['qnt'])){

echo "<script type='text/javascript'> alert('successful'); </script>";
include("addtocard.php");
}
else {
echo "Enter a quantity.";
}