表单提交后更新DB

时间:2015-11-17 14:50:05

标签: php wordpress

我正在尝试将变量传递给disable.php,然后将更新数据库中的一行,所有这些都在我正在构建的wordpress插件中。我不明白为什么这不起作用。

继承我的表格

<form method='post' action='".plugins_url()."/myremovalsquote/inc/disable.php''>
  <input type='submit' name='".$_SESSION['id'] = $active_partner->partner_id."' class='button-primary' id='disable' value='Disable'/>
</form>

继承我的/disable.php

global $wpdb;

$id = $_SESSION["id"];

$wpdb->query("UPDATE partners SET active='no' WHERE partner_id='".$id."'");

header("Location: http://www.website.com/wp-admin/admin.php?page=my-plugin-settings");

这是我得到的错误,似乎会话中的变量没有被转移到disable.php。

3 个答案:

答案 0 :(得分:0)

除了我的评论之外,您可以使用隐藏的输入字段,也可以存储要在会话中一起读取和发送的值。对于第一个解决方案:

<form method='post' action='/myremovalsquote/inc/disable.php'>
<input type="hidden" name="id_to_be_disabled" value="<?= $active_partner->partner_id; ?>">
  <input type='submit' class='button-primary' id='disable' value='Disable'/>
</form>

对于第二个解决方案,只需使用session_start();调用会话并将值存储在其中。无需摆弄提交按钮名称。

答案 1 :(得分:0)

您的表单中存在名称和值的错误。试试这个:

<form method='post' action='".plugins_url()."/myremovalsquote/inc/disable.php"'>
  <input type='submit' name='id' value='" . $active_partner->partner_id."' class='button-primary' id='disable' value='Disable'/>
</form>

我也希望在这里有一个隐藏的领域。

答案 2 :(得分:-1)

将session_start()放在你的/disable.php