使用一个链接执行2个操作的问题

时间:2010-09-23 05:31:37

标签: php mysql

我在php中制作一个简单的购物车程序。 以下代码的作用是更新当前页面,以便购买的产品数量为零。然后我尝试将其与另一个页面链接,该页面执行另一个操作(更新数据库)。 我可以用这个实验代码做些什么:

    echo "<td>
<a href=\"$_SERVER[PHP_SELF]?action=zeroline&id=$product_id&commitbuy.php?ids=$id&qoh=$qtyhand&qtb=$quantity\">
<img src=\"http://localhost/onlinestore/img/system/accept-icon.png\"></img></a>
</td>";

更新当前页面的部分似乎正在工作,但更新数据库的部分无法正常工作。 正如您所看到的,我只是将这两个(PHP_SELF,它是viewcart.php,然后是commitbuy.php)与一个&符号链接起来。

我应该将更新的代码放在viewcart.php中吗? 什么是正确的做法。

2 个答案:

答案 0 :(得分:1)

是的,除非您使用Ajax同时向服务器发送两个不同的请求(并且有充分的理由),否则您应该处理后端PHP中的操作的所有关联业务逻辑。即使使用Ajax,我也无法想象逻辑需要不止一个请求,在成功时使用Javascript / jQuery将数量更新为零。

正如前面提到的@martin所提到的,在你确信第一个动作真的成功之前,你不想触发第二个依赖动作。

答案 1 :(得分:0)

您应该查看网络服务器的日志,您会看到只进行了一次通话,并且它包含整个href

&符号用于分隔URL中的查询字符串参数,而不是分隔多个URL,因此它们一次性从客户端发送。

至少有两个原因导致您不希望进行两次调用:用户体验 - 进行两次调用可能需要更长时间,可靠性 - 如果数据库更新失败会怎样?

您知道model-view-controller MVC型号吗?