[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как передать переменную форме обработки???
Страницы: 1, 2, 3
Randiria
Есть у меня файл для редактирования статуса заявок. не могу сообразить как передать номер заявки функции обработки.
$result=mysql_query("SELECT
holiday.id,
holiday.Status AS Status
FROM holiday
INNER JOIN employee
ON holiday.Personnel_Number = employee.Personnel_Number
WHERE holiday.Status = 'Ожидает'"
,$db);
$myrow=mysql_fetch_array($result);

do
{
echo "<tr><th>".$myrow['id']."</th>";
echo "<th>".$myrow['Status']."</th>";
echo "<th><form action='redact_holiday.php' align='center' method='post'><input type='submit' name='prinyato' value='Принято'/></form></th>";
echo "<th><form action='redact_holiday.php' align='center' method='post'><input type='submit' name='otkazano' value='Отказано'/></form></th>";
echo "</tr>";
}
while($myrow=mysql_fetch_array($result));


функция обновления статуса, ее нужно вызвать через форму.
FUNCTION database1.change_pr(id INT)
RETURNS int(11)
BEGIN
UPDATE holiday set Status='Принято' WHERE holiday.id=id;
RETURN 1;
END
bestxp
так у тебя есть же id
передай его либо через _GET в гкд формы добавь ?id=...
либо через _POST в форме скрытый
<input type="hidden" name="id" value"..." />
Randiria
а если мне обработчик формы вынести в отдельную страницу, как мне на нее послать этот параметр?
bestxp
а какая разница куда ты вынесешь, хоть на другой домен, ты то туда передаешь параметры, а они придут либо в заголовке запроса либо в теле зависит от того как отправишь
Randiria
в форму добавила <input type='hidden' name='id' value='$_POST[$myrow['id']]' /> в итоге пишет что запрос на обновление пуст. я неправильно передаю?
bestxp
конечно

ты передаешь в id текст $_POST[$myrow['id']], а не значение или что-то еще

а тебе надо передать id
Игорь_Vasinsky
в данном случае - совершенно не зачем писать функции SQL, достаточно простых запросов для update



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
OleKh
На примере http://sql-info.de/mysql/examples/create-f...n-examples.html

if(isset($_POST['prinyato']) && !empty($_POST['id'])){
$id = mysql_real_escape_string($_POST['id']);
mysql_query('SELECT change_pr('.$id.')');
}
Игорь_Vasinsky
Цитата
$id = mysql_real_escape_string($_POST['id']);


id то integer )

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sergeiss
Алярм! "Попов детектед"!!!

Вот от этой структуры необходимо срочно избавляться, перепиши по-нормальному:
Цитата (Randiria @ 5.05.2014 - 11:31)
$myrow=mysql_fetch_array($result);

do
{
....  
}
while($myrow=mysql_fetch_array($result));

Как лучше - тут описано http://phpforum.ru/index.php?showtopic=21916

И переношу тему в раздел "PHP +SQL", т.к. к администрированию БД она не имеет никакого отношения.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
OleKh
Цитата
d то integer )

Точно, как же быть тогда, может (int)$id .
Хотя SQL одинаково принимает 1 и '1' как integer.
Игорь_Vasinsky
OleKh
быть всегда нужно проще, если число - приводить к типу, если строка - то эскейптировать.

так то можно и сковородкой брюки гладить.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Randiria
Цитата (bestxp @ 5.05.2014 - 13:12)
конечно

ты передаешь в id текст $_POST[$myrow['id']], а не значение или что-то еще

а тебе надо передать id

епт, а откуда я его откопаю без какой либо ссылки?
OleKh
т.е. случай, что в $_POST['id'] может быть передана SQL-инъекция не допускается?
Лучше проверять на тип перед тем как экранировать, тут без вопросов.

if(is_integer($_POST['id'])) $id = $_POST['id'];
sergeiss
Цитата (OleKh @ 5.05.2014 - 13:52)
Лучше проверять на тип перед тем как экранировать

Зачем проверять тип, если заранее известно, что в айди допустимы только числа? Приводим сразу к целому числу. Если там нечего "приводить", то просто получим ноль.

Да, операция непродолжительная, что ты предложил. Но из таких ненужных "мелочей" можно набрать очень много лишнего, в т.ч. и по времени выполнения скрипта.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.