【问题标题】:What is happening when button was clicked in php在php中单击按钮时发生了什么
【发布时间】:2014-03-04 11:41:10
【问题描述】:

我是 php 新手,我正在使用 php 开发一个 Web 应用程序。有一个选择框和按钮。当我从“数量”选择框中选择一个值时,它应该相应地更改总计值。但是只有在单击“结帐”按钮后才会发生更改,为什么会这样?即使我按下“F5”按钮,它也没有改变。只有当我按下按钮。请帮帮我。

这是图片:

选择箱码和总值变化码;

echo "<tr>";
            echo "<td width = '55%'>";
            echo $NAME[$i];
            echo "</td>";

            echo "<td width = '15%'>";
            echo $PRICE[$i];
            echo "</td>";

            echo "<td width = '15%' align = 'center'>";
            echo "<select name='leDate1' class='textBox' id='leDate1' onchange='getvalue(this.value)'>";

                                $id = $_SESSION['ItemId'];
                                $result = mysql_query("SELECT Quantity FROM itemcategory WHERE ItemId = '$id'");

                                $quantity = "";
                                while($row = mysql_fetch_assoc($result))
                                {
                                    $quantity = $row['Quantity'];
                                }
                                $title = $_SESSION['selected_option'];
                                echo "<option selected=\"true\" style=\"display:none;\">$title</option>";

                                for($j = 1; $j <= $quantity; $j++){
                                    echo "<option value=\"$j\">$j</option>";
                                }

                            echo "</select>";

            echo "</td>";
                            echo "<td width = '15%'>";
            echo $PRICE[$i]*$_SESSION['selected_option'];
            echo "</td>";
        echo "</tr>";
        }
        echo "</table>";
        echo "</form>";

使用这个我从选择框中获取选定的值:

if (isset($_REQUEST['leDate1'])) {
        $_SESSION['selected_option'] = $_POST["leDate1"];
    }

注意: 这是实现上述问题的代码:

$FormName = "form2";                                
echo '<script language="javascript">';
echo 'function run(){';
echo 'document.'.$FormName.'.submit();';
echo '}';
echo '</script>';

【问题讨论】:

  • 除非您发布代码,否则没有人可以回答您的问题
  • 认真的吗?您是否期待“abracadabra..这是您出错的地方!”?
  • 你需要 javascript 来执行你想要的(我认为),阅读客户端代码和服务器端代码之间的区别
  • 如果你想改变选择框的值,你必须学习 AJAX
  • 您对所涉及的概念有一个普遍的误解。您必须区分客户端上发生的事情和服务器上发生的事情。对于您当前的问题,只需使用 javascript 即可解决。

标签: javascript php jquery button drop-down-menu


【解决方案1】:

但是只有在单击“结帐”按钮后才会发生更改,为什么会这样?

  1. 提交按钮将提交表单。
  2. 提交表单的过程将从表单中获取所有用户输入,并使用它来构造 HTTP 请求。
  3. Web 服务器和 PHP 将处理该 HTTP 请求并生成响应。
  4. 响应将被发送到浏览器。
  5. 然后浏览器将呈现它。

即使我按下“F5”按钮,它也不会改变。

这将导致浏览器重复 last 请求,而不是使用新的用户输入创建一个新请求。

当我从“数量”选择框中选择一个值时,它应该相应地更改总计值。

那么你需要使用 JavaScript 来:

  • 当用户输入改变时复制 PHP 的功能
  • 当用户输入改变时提交表单
  • 构造一个要在后台发送的 HTTP 请求(例如,使用 XMLHttpRequest)并操作 DOM 以在响应中插入数据。

【讨论】:

  • 感谢您的解释。我已经通过 javascript 解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多