【问题标题】:Call multiple PHP functions on the click of a button单击按钮调用多个 PHP 函数
【发布时间】:2015-07-17 15:25:15
【问题描述】:

我对 php 还很陌生,遇到了适应别人程序的问题。我正在尝试实现一个购物车风格的 php 和 javascript 程序。购物车接受新条目,方法是通过提交按钮 POST 值,包括 id、数量、名称和价格。

    <form method="post" style="border:0px solid yellow;" ><fieldset>
    <input type="hidden" name="jcartToken" value="<?php echo $_SESSION['jcartToken'];?>" />
        <input type="hidden" name="my-item-id" value="1" />
        <input type="hidden" name="my-item-name" value="apples" />
        <input type="hidden" name="my-item-price" value="2" />
        <input type="hidden" name="my-item-qty" value="1" size="3" />


<input id="apples" type="submit" name="my-add-button" class="add" value="&nbsp"/>Apples - $2

</fieldset></form>

购物车通过 php 文件通过 GET 命令的方式移除商品

    if($_GET['jcartRemove'] && !$_POST) {
        $this->remove_item($_GET['jcartRemove']);
    }

这个GET命令可以通过

触发
    <a href="index.php?jcartRemove=apples">no more apples</a>

但这只会触发一次。我想要的是有一个项目列表

  • 苹果
  • 橙子
  • 香蕉

当通过表单发布方法选择并添加到购物车时,其他两个会自动从购物车中删除。有没有办法使用 AJAX 推送 jcartRemove 函数并通过它们的 ID 删除两个项目?

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: javascript php forms button


    【解决方案1】:

    与其进行多次 AJAX 调用,不如修改 PHP 并允许删除函数接受一个数组而不是一个项目。然后你可以传递一个或多个项目以一次全部删除。

    例如:

    if($_GET['jcartRemove'] && !$_POST) {
        if (is_array($_GET['jcartRemove'])) {
            foreach($_GET['jcartRemove'] as $item) {
                 $this->remove_item($item);
            }
        } else {
            $this->remove_item($_GET['jcartRemove']);
        }
    }
    

    您的链接将如下所示包含多个项目:

    <a href="index.php?jcartRemove[]=apples&jcartRemove[]=bananas">no more apples or bananas</a>
    

    因为我们正在检查 jscartRemove 是否是一个数组,所以您仍然可以像往常一样将单个项目传递给它,它也将继续工作。

    【讨论】:

    • 采用这种将 html/js/ajax 和 php 作为工具来满足您的需求的方法是核心。
    • 感谢您的帮助,但上面的代码导致页面显示为空白。
    • 确实如此!非常感谢你!我应该自己发现那个错字,但是星期五和所有......
    猜你喜欢
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 2022-11-14
    • 2014-01-11
    • 1970-01-01
    • 2017-04-21
    • 2015-08-20
    相关资源
    最近更新 更多