Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 26
1

isset() + $_POST

14.01.2020, 20:57. Просмотров 334. Ответов 5
Метки php (Все метки)

Здравствуйте.
В одном из своих постов lnk, была задача записи данных в файл, но время идет и все мы учимся и совершенствуемся, соответственно я портировал данные из файла в БД.
Сейчас возникло не понимание - почему не могу присвоить переменной php данные отправленные ajaxом
код:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
  $(function () {
    $('div.toggle-button, div.toggle-button--aava').change(function (e) {
      var $checkbox = $('#power', this);
      $checkbox.prop('disabled', true);
 
      $.post('/main.php', {
        power: $checkbox.prop('checked') ? 'on' : 'off'
        },
        function (data) {
            if (data === 'on') {
            $checkbox.prop('checked', true);
            $checkbox.siblings('label').text();
        } else {
            $checkbox.prop('checked', false);
            $checkbox.siblings('label').text();
        };
 
        $checkbox.prop('disabled', false);
      });
    });
  });
</script>
PHP
1
2
3
4
5
6
7
8
if (isset($_POST['power'])) {
   $newStatus = $_POST['power'] == 'on' ? 'on' : 'off';
   $update_pwr = mysqli_query($connect, "UPDATE $tbl SET status = ".$newStatus." WHERE id = 'power'");
   echo $newStatus;
   exit();
}
 
$status_pwr = $result_pwr['status'] == "on";
PHP
1
var_dump($_POST['power'])
Выдает: NULL

соответственно после чего ломается смысл $newStatus
но я когда открываю консоль отладки (FF, F12) то вижу что как параметр/ответ есть в _POSTе

P.S.
(( к примеру curl (для другой задачи) отрабатывает все на ура))
Код
curl -u superuser:superpass -d "n_value_A='1'&n_status_A='ok'" http://super.site/main.php
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2020, 20:57
Ответы с готовыми решениями:

Не работает if isset
Доброго времени суток. Возникла странного рода проблема. Пишу регистрацию для сайта. Передаю...

Isset и $_GET
Здравствуйте, возникла ошибка. Код простой: echo $_GET; echo isset($_GET)); Выводить...

Ошибка isset
&lt;?php if (isset($_POST(&quot;calc&quot;))){ print_r($_POST); } ?&gt; &lt;!DOCTYPE html&gt; &lt;html...

ArrayAccess isset и null
php не перестает радостно удивлять. Как проверить имеется ли в объекте реализующем ArrayAccess...

5
Эксперт PHP
3496 / 2939 / 1236
Регистрация: 01.08.2012
Сообщений: 10,127
15.01.2020, 01:30 2
Цитата Сообщение от MRC_Hg Посмотреть сообщение
Выдает: NULL
А где вы этот NULL видите, в консоли - Сеть - Ответ?
0
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 26
15.01.2020, 12:44  [ТС] 3
to Jodah,
нет NULL выдает команда var_dump($_POST['power']) а в колнсоли все как надо, ответ - on или off
0
Эксперт PHP
3496 / 2939 / 1236
Регистрация: 01.08.2012
Сообщений: 10,127
15.01.2020, 12:56 4
Цитата Сообщение от MRC_Hg Посмотреть сообщение
нет NULL выдает команда var_dump($_POST['power'])
Тогда не совсем понимаю, как вы запускаете скрипт, что он выдаёт NULL. Просто в браузере на него переходите?
0
449 / 253 / 54
Регистрация: 22.08.2010
Сообщений: 1,169
Записей в блоге: 4
15.01.2020, 14:37 5
Попробуй передавать всю форму - если чекбокс не отмечен, его имя не передается на сервер

Добавлено через 2 минуты
А зачем столько сложностей? Передавай в post всю форму - если чексбокс не отмечен, его имя не передается на сервер
0
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 26
16.01.2020, 23:04  [ТС] 6
Тему закрываю, проблема решена.
Кликните здесь для просмотра всего текста

HTML5
1
2
3
4
5
<div class="toggle-button toggle-button--aava">
        <input id="power" type="checkbox">
        <label for="power" data-on-text="Вкл" data-off-text="Выкл"></label>
        <div class="toggle-button__icon"></div>
    </div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
  $(function () {
    $('div.toggle-button, div.toggle-button--aava').change(function (e) {
      var $checkbox = $('#power', this);
      $checkbox.prop('disabled', true);
      $.post('main.php', {
        state_pwr: $checkbox.prop('checked') ? 'on' : 'off'
        },
        function (data) {
            if (data === 'on') {
            $checkbox.prop('checked', true);
            $checkbox.siblings('label').text();
        } else {
            $checkbox.prop('checked', false);
            $checkbox.siblings('label').text();
        };
         $checkbox.prop('disabled', false);
      });
    });
  });
</script>
PHP
1
2
3
4
5
6
if (isset($_POST['state_pwr'])) {
   $newStatus = $_POST['state_pwr'] == 'on' ? 'on' : 'off';
   $update_pwr = mysqli_query($connect, "bla bla bla");
   echo $newStatus;
   exit();
}

имя id div-а совпадало с $_POST['......']
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2020, 23:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Isset возвращает false, вместо true
Есть строки скрипта типа if(...){ if(...){ if(...){ $some_var =...

Isset($_SERVER['PHP_AUTH_USER'] перестал передавать введенные логин и пароль
Здравствуйте! Когда-то делал сайт человеку. В начало php-файла, отвечающего за вывод формы входа...

$_POST
Теперь другая &quot;неприятность&quot;. В файле index.php есть форма входа, action перекидывает на...

$_post в mysql
Всем привет, проблема такова, как реализуется вставка в базу, когда передача значения идёт методом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.