Как я могу передать значение флажка с одной страницы на другую? - PullRequest
0 голосов
/ 04 декабря 2011

Я пытаюсь передать выбранное значение флажка с одной страницы на другую, чтобы выполнить инструкцию mysql на моей базе данных.Вот что у меня есть:

HTML

<form method='POST' action='move_compaudit.php'>
<input type='hidden' name='checkbox' value='0'/>
<input type='checkbox' name='checkbox' value='1'/>

PHP (этот файл называется move_compaudit.php)

<?php
  include('include/dbConnection.php');
  $checkbox = isset($_POST['checkbox']) ? 'Set' : 'NotSet';
  //SQL statement
  $query = "SELECT * FROM compaudit;";
  $results = mysqli_query($dbc,$query) or die('Error querying database');
  $row = mysqli_fetch_array($results);
  $query1 = "DELETE FROM compaudit WHERE serial_no = $row[7] AND $checkbox = 'Set'";    
  //Execute prepared MySQL statement
  //$results1 = mysqli_query($dbc,$query1) or die('Error querying database');
  print_r($query);
  print_r($query1);
?>

Мой плохо напечатанный запрос : Я получаю это каждый раз, независимо от того, нажали вы или нет.

SELECT * FROM compaudit;DELETE FROM compaudit WHERE serial_no = 12345 AND Set = 'Set'

Ответы [ 3 ]

1 голос
/ 04 декабря 2011

Если вы собираетесь сохранить свой HTML как есть, вам нужно проверить фактическое значение $ _POST ['checkbox'] вместо того, чтобы проверять, установлено ли оно.Ваше скрытое поле гарантирует, что, даже если оно не отмечено, $ _POST все равно получит значение для "checkbox".

<?php
include('include/dbConnection.php');
$checkbox = ($_POST['checkbox'] == '1') ? 'Set' : 'NotSet';
....
0 голосов
/ 04 декабря 2011

Если вы объявите перед флажком скрытое имя с тем же именем, эта переменная будет всегда истинной для isset.

Посмотрите на подсказку @GameBit, экранируйте с помощью галочек поля и заключите в кавычки / экранируйте все переменные перед использованием в запросе.

0 голосов
/ 04 декабря 2011

Set - это ключевое слово в MySQL :), вы должны экранировать его с помощью `

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...