gpt4 book ai didi

php - 如何防止 PHP 在 isset(POST ['submit' ]) 后动态更新项目列表?

转载 作者:行者123 更新时间:2023-11-29 14:31:49 25 4
gpt4 key购买 nike

我正在制作一个“我必须运送的元素列表”,其中包含每个元素和每个元素的“标记为已运送”按钮。

我的问题是,当我按“标记为已发货”时,一件商品消失了,但它不是我点击的商品。我必须刷新页面才能看到合乎逻辑的结果。我想阻止 PHP 更新此列表,因为我想用 jQuery 来处理它。另外,我想知道如何更新 $numItemHave2Ship 而无需刷新页面(或者使用 jQuery 更好?)。

我该怎么做?非常感谢。

这是我的代码的工作原理:

首先我用 MYSQL 获取所有项目:

$query=mysql_query("SELECT * FROM items WHERE seller='$username' AND shipped!='1'");
$numItemHave2Ship=mysql_num_rows($query);
echo "You have to ship ".$numItemHave2Ship." items:<p>";

然后,对于我拥有的每一项:

<input type='hidden' name='item' value='".$row['item']."'>
<input type='submit' class='shipped_button' value='Mark as shipped'>

那么显然,这个按钮会触发mysql查询:

$query=mysql_query("UPDATE items SET shipped='1' WHERE item='$item' 
AND seller='$username'");

编辑:我还没有 jQuery 代码。我的整个代码都是 PHP 和 HTML。

最佳答案

表单的操作是否是同一页面上的某个项目?如果是这样,您必须在调用 SELECT 查询和显示项目列表的代码之前,根据 if isset($_POST["item"]) 有条件地调用 SQL UPDATE。

如果您想使用 jQuery 更新 items 列表以及 numItems 标签而不重新加载页面,您将需要执行类似的操作(未经测试,可能包含错误,但这就是要点):

  1. 将 UPDATE 和 SELECT 查询以及用于显示(回显)所选项目的代码放在单独的 PHP 脚本中。这必须作为 jQuery ajax() 或 .get() 或 .post() 中的 url 进行调用。

  2. 在 jQuery 中,在提交按钮上设置一个 click 方法,例如 $('.shipped_button').click()

  3. 通过调用 $(this).preventDefault() 来阻止单击按钮时的默认行为

  4. 使用提交按钮的 name 属性来存储 $item 值。 (如果您不需要页面在不使用 jQuery 的情况下正常降级,则可以删除隐藏输入)。然后,您可以获取 $item 值 $(this).attr('name') 并将其作为数据传递给您的 ajax 脚本。

  5. 成功时刷新回调函数中项目列表的内部 html,如下所示:$('#items').html(result)

  6. 减少 numItems 标签的值:var str_items = $('#numItems').html(); var int_items = parseInt(str_items) - 1; $('#numItems').html(int_items);

编辑:如果您不想使用 .preventDefault(),只需将 type='submit' 更改为 type='button' 即可轻松阻止表单提交 相反。

关于php - 如何防止 PHP 在 isset(POST ['submit' ]) 后动态更新项目列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com