php - 如何检测按下了哪个提交按钮?

标签 php javascript html forms submit

我有一个 PHP 脚本,我需要检测 HTML 页面中按下了哪个按钮。我发现其他人提出了很多类似的问题,但我遇到了问题。

HTML

<form method="post" action="kode/kode_newsletter_operation.php" id="newsletter_step3Form">
                    <p>
                        <label>Schedule newsletter:</label>
                        <select name="send_date_month" id="send_date_month">
                            <option value="01">January</option>
                            <option value="02">February</option>
                            <option value="03">March</option>
                            <option value="04">April</option>
                            <option value="05">May</option>
                            <option value="06">June</option>
                            <option value="07">July</option>
                            <option value="08">August</option>
                            <option value="09">September</option>
                            <option value="10">October</option>
                            <option value="11">November</option>
                            <option value="12">December</option>
                        </select>
                        -
                        <select name="send_date_day" id="send_date_day">
                            <option value="01">1</option>
                            <option value="02">2</option>
                            <option value="03">3</option>
                            <option value="04">4</option>
                            <option value="05">5</option>
                            <option value="06">6</option>
                            <option value="07">7</option>
                            <option value="08">8</option>
                            <option value="09">9</option>
                            <option value="10">10</option>
                            <option value="11">11</option>
                            <option value="12">12</option>
                            <option value="13">13</option>
                            <option value="14">14</option>
                            <option value="15">15</option>
                            <option value="16">16</option>
                            <option value="17">17</option>
                            <option value="18">18</option>
                            <option value="19">19</option>
                            <option value="20">20</option>
                            <option value="21">21</option>
                            <option value="22">22</option>
                            <option value="23">23</option>
                            <option value="24">24</option>
                            <option value="25">25</option>
                            <option value="26">26</option>
                            <option value="27">27</option>
                            <option value="28">28</option>
                            <option value="29">29</option>
                            <option value="30">30</option>
                            <option value="31">31</option>
                        </select>
                        -
                        <select name="send_date_year" id="send_date_year">
                            <option value='2012'>2012</option><option value='2013'>2013</option>                                </select>&nbsp;
                            <select name="send_date_hour" id="send_date_hour">
                                <option value="00">0</option>
                                <option value="01">1</option>
                                <option value="02">2</option>
                                <option value="03">3</option>
                                <option value="04">4</option>
                                <option value="05">5</option>
                                <option value="06">6</option>
                                <option value="07">7</option>
                                <option value="08">8</option>
                                <option value="09">9</option>
                                <option value="10">10</option>
                                <option value="11">11</option>
                                <option value="12">12</option>
                                <option value="13">13</option>
                                <option value="14">14</option>
                                <option value="15">15</option>
                                <option value="16">16</option>
                                <option value="17">17</option>
                                <option value="18">18</option>
                                <option value="19">19</option>
                                <option value="20">20</option>
                                <option value="21">21</option>
                                <option value="22">22</option>
                                <option value="23">23</option>
                            </select>:<select name="send_date_min" id="send_date_min">
                                <option value="00">00</option>
                                <option value="00">05</option>
                                <option value="10">10</option>
                                <option value="00">15</option>
                                <option value="20">20</option>
                                <option value="00">25</option>
                                <option value="30">30</option>
                                <option value="00">35</option>
                                <option value="40">40</option>
                                <option value="00">45</option>
                                <option value="50">50</option>
                                <option value="00">55</option>
                            </select>
                            <div>Server Time: October 12, 2012 04:54</div>
                        </p>
                        <p>
                            <label for="send_date">Preview in Email:</label>
                            <input type="text" id="preview_email"  value="" name="preview_email" />
                            <input type="button" id="preview_btn" name="preview_btn" class="btn btn_red" onclick="previewSendMail(1)" value="Send Preview"/>
                        </p>
                        <p>&nbsp; </p>
                        <div id="kode_result"></div>
                        <div id="content_buttons">
                            <input type="button" class="btn btn_blue big" name="goback" value="Last Step" onclick="window.location.href='./newsletter_create_step2.php?id=1'" />
                            <input type="submit" name="submit_btn_now" value="Send now!" class=" btn btn_red big"/>
                            <input type="submit" name="submit_btn" value="Schedule" class=" btn btn_green big"/>
                            <input name="action" type="hidden" value="newsletter_step3" />
                            <input type="hidden" name="newsletter_id" id="newsletter_id" value="1"/>
                        </div>
                    </form>

PHP

print_r($_POST);

输出

Array(
[send_date_month] => 10
[send_date_day] => 12
[send_date_year] => 2012
[send_date_hour] => 01
[send_date_min] => 50
[preview_email] =>
[action] => newsletter_step3
[newsletter_id] => 1
)

两个按钮都位于 <form> 内标签但 $_POST array 不包含有关它们的任何信息。我究竟做错了什么?最新的浏览器是否不发送有关提交按钮的信息,还是我遗漏了某些内容? 我没有 javascript 技能来为此开发解决方法,我只知道 PHP。

提前致谢。

最佳答案

为提交按钮提供相同的名称属性,但具有不同的值,然后您可以针对提交按钮上使用的文本进行测试。

<pre><? print_r($_POST);?></pre>
<form method="post">
<input type="submit" name="button" value="AAA">
<input type="submit" name="button" value="BBB">
</form>

输出:

Array
(
    [button] => AAA
)
<小时/>

编辑:实际上,我发现你的代码没有任何问题?

<pre><? print_r($_POST);?></pre>
<form method="post">
<input type="submit" name="submit_btn_now" value="Send now!" class=" btn btn_red big"/>
<input type="submit" name="submit_btn" value="Schedule" class=" btn btn_green big"/>
</form>

仅输出点击一个:

Array
(
    [submit_btn_now] => Send now!
)

关于php - 如何检测按下了哪个提交按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12850041/

相关文章:

php - 使 PHP 在提交表单后运行,而不重定向到另一个 PHP 页面来处理数据

javascript - 如何在 angularjs 应用程序中包含 d3.js?

javascript - javascript 中 JSON 的默认值

php - 当表格在 Firefox 中跨越多个页面时,不打印单元格边框(第一页除外)

php - Google People API(如何使用 API key 进行身份验证)

php - 删除中间表 mySQL

php - Codeigniter - 从我渲染的 View 中删除空行

javascript - Javascript 中的作用域和 OR 运算符

javascript - 我们如何编写用于打印的单元测试?

HTML 中的 Javascript 未正确调用