2015-11-17 5 views
1

Я пытаюсь переносить переменную на disable.php, которая затем обновляет строку в базе данных, все это находится в плагине Wordpress, который я создаю. Я не понимаю, почему это не сработает.Обновление базы данных после формы submit

Heres моя форма

<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> 

Heres мой /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"); 

Это ошибка я получаю, кажется, что переменная из сеанса ISN» t переносится на disable.php.

+0

Почему бы не использовать скрытый ввод ('<входной тип = "скрытый" имя = "some_weird_sessionid" значение = 12345>')? – Jan

+0

Вы редактируете добавление «Это ошибка, которую я получаю ...», но я не вижу ошибки. Вы забыли добавить его? Кроме того, из того, что я могу сказать, это, вероятно, не работает, потому что Wordpress не использует сеансы по умолчанию. См. [Здесь] (http://stackoverflow.com/questions/1441240/wordpress-session-management) и [здесь] (http://wordpress.stackexchange.com/questions/32646/how-to-use-my- own-custom-session-value-in-wordpress) для моих источников для этой теории. –

ответ

0

В дополнение к моему комментарию, вы можете использовать скрытое поле ввода или сохранить значения, которые нужно читать и отправлять в сеансе alltogether. Для первого решения:

<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(); и сохранить значение в нем. Не нужно возиться с именем кнопки отправки.

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> 

И я также предпочел бы скрытое поле здесь.

-1

положить session_start() на вашем /disable.php

+0

Добро пожаловать в StackOverflow! Пожалуйста, добавьте некоторые пояснения к вашему коду: почему это работает? Что делать? –

Смежные вопросы