Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Привязка кнопки к нужному полю
Форумы портала PHP.SU » » Вопросы новичков » Привязка кнопки к нужному полю

Страниц (1): [1]
 

1. Gans - 29 Января, 2014 - 09:05:45 - перейти к сообщению
Всем привет. Нужна помощь. написал код пхп.
Выгружаю данные из БД в таблицу.
PHP:
скопировать код в буфер обмена
  1.         $db_table_to_show = 'zi';
  2.         $qr_result = mysql_query("select * from " .$db_table_to_show)
  3.         //$qr_result2 = mysql_query ("select * from `zi` WHERE `manager`='$mylog'")
  4.       or die(mysql_error());
  5.     echo '<table border="1">';
  6.    echo '<thead>';
  7.    echo '<tr>';
  8.                   echo '<th>Заказ</th>';
  9.    echo '</tr>';
  10.    echo '</thead>';
  11.    echo '<tbody>';
  12.         while($data = mysql_fetch_array($qr_result)){
  13.       echo '<tr>';
  14. if($data["Dir"] == 1) {  echo  '<td><p><img src="./images/on.bmp"></p></td>'; } else { echo  '<td><form action="/dir.php" method="POST"><input name="Dir" id="1" type="hidden" value="1"/><input type="submit" value="Одобрить" /></td>'; }
  15.       echo '</tr>';
  16.    }
  17.     echo '</tbody>';
  18.    echo '</table>';
  19.  

Вот что в обработчике:
PHP:
скопировать код в буфер обмена
  1.  
  2. include_once 'handler.php';
  3. if($user) {
  4. $mainresult = mysql_query("SELECT `prava` FROM `users_profiles` WHERE `username` = '".$_COOKIE['username']."'");
  5. $mainrow = mysql_fetch_array($mainresult);
  6. if($mainrow["prava"] ==6) {
  7.  
  8. $resultdir = mysql_query(" UPDATE `zi` SET `Dir` ='".$_POST['Dir']."'  WHERE `id`='1'");
  9. if($resultdir == 'true') { header ('Location: index.php' ); exit; }
  10. else { header ('Location: proverka.html' ); exit; }
  11. } else { echo 'У вас нету прав!'; echo '<p><a href="/index.php">Вернуться на главную</a></p>'; }
  12. }
  13. else {
  14. echo 'Вы не авторезировались!';
  15. }
  16.  


Проблем в том что после нажатии на кнопку Одобрить он вставляет значение 1 во всех поля "Dir"
А нужно в то где находилась кнопка Одобрить.
Как привязать кнопку Dir к нужному полю полю. Пишите пожалуйста подробно так как я еще зеленый чайник =)
2. imya - 29 Января, 2014 - 10:08:14 - перейти к сообщению
Дать кнопке уникальный id
И потом $_GET- ом || $_POST- ом его получать
3. Gans - 29 Января, 2014 - 11:05:49 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $resultdir = mysql_query(" UPDATE `zi` SET `Dir` ='".$_POST['Dir']."' WHERE `nomer` = '".$_POST['nomer']."'");
  2.  
  3.   '<td><form action="/dir.php" method="POST"><input name="Dir" type="hidden" id="$data["nomer"];" value="1"/><input type="submit" value="Одобрить" /></td>'; } else { echo  '<td><p><img src="./images/off.bmp"></p></td>'; }
  4.  


Сделал так нефига нету толку.
4. KingStar - 29 Января, 2014 - 11:15:58 - перейти к сообщению
как вариант в action="/dir.php" GETом передать $data["nomer"] и в обработчике принять
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. action="/dir.php?nomer='.$data["nomer"].'"
5. Gans - 29 Января, 2014 - 11:36:49 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. echo  '<td><form action="/dir.php" method="GET"><input name="Dir" type="hidden" id="$data["nomer"];" value="1"/><input type="submit" value="Одобрить" /></td>';
  2.  
  3. $resultdir = mysql_query(" UPDATE `zi` SET `Dir` ='".$_GET['Dir']."' WHERE `nomer` = '".$_GET['nomer']."'");
  4.  

все так же.
6. KingStar - 29 Января, 2014 - 11:42:24 - перейти к сообщению
Куда Вы смотрите??? Я вроде четко написал

CODE (htmlphp):
скопировать код в буфер обмена
  1. action="/dir.php?nomer='.$data["nomer"].'"


ужас просто...

PHP:
скопировать код в буфер обмена
  1. echo  '<td><form action="/dir.php?nomer='.$data["nomer"].'" method="GET"><input name="Dir" type="hidden" value="1"/><input type="submit" value="Одобрить" /></td>';


принимаешь $_GET['nomer']
(Добавление)
и уважаемый, где Ваша форма заканчивается???
7. Gans - 29 Января, 2014 - 11:59:20 - перейти к сообщению
Не получилось.
index.php
PHP:
скопировать код в буфер обмена
  1. if($data["Dir"] == 1) {  echo  '<td><p><img src="./images/on.bmp"></p></td>'; } else { if(($data["otchet"]==1) and ($data["Ruk"]== 0)) { echo  '<td><form action="/dir.php?nomer='.$data["nomer"].'" method="GET"><input name="Dir" type="hidden" value="1"/><input type="submit" value="Одобрить" /></td>'; } else { echo  '<td><p><img src="./images/off.bmp"></p></td>'; } }


dir.php
PHP:
скопировать код в буфер обмена
  1. include_once 'handler.php';
  2. if($user) {
  3. $mainresult = mysql_query("SELECT `prava` FROM `users_profiles` WHERE `username` = '".$_COOKIE['username']."'");
  4. $mainrow = mysql_fetch_array($mainresult);
  5. if($mainrow["prava"] ==6) {
  6. $nomer = mysql_real_escape_string(htmlspecialchars($_POST['nomer']));
  7. $resultdir = mysql_query(" UPDATE  `zi` SET `Dir` ='".$_GET['Dir']."' WHERE `nomer` = '".$_GET['nomer']."'");
  8. if($resultdir == 'true') { header ('Location: index.php' ); exit; }
  9. else { header ('Location: proverka.html' ); exit; }
  10. } else { echo 'У вас нету прав!'; echo '<p><a href="/index.php">Вернуться на главную</a></p>'; }
  11. }
  12. else {
  13. echo 'Вы не авторезировались!';
  14. }
  15.  
8. KingStar - 29 Января, 2014 - 12:06:23 - перейти к сообщению
понятия ноль Хм



откуда $user???

PHP:
скопировать код в буфер обмена
  1. $nomer = mysql_real_escape_string(htmlspecialchars($_POST['nomer']));


причем здесь POST ??? вы же

CODE (htmlphp):
скопировать код в буфер обмена
  1. method="GET"


нотайс не показал что ли???
9. Gans - 29 Января, 2014 - 12:18:13 - перейти к сообщению
Проверка на авторизацию.
PHP:
скопировать код в буфер обмена
  1. $nomer = mysql_real_escape_string(htmlspecialchars($_POST['nomer']));

поменял на Get
PHP:
скопировать код в буфер обмена
  1. method="GET"
не понял....

Все равно не работает. Я хз как привязку сделать именно к нужному полю.
10. dmaw - 29 Января, 2014 - 13:02:51 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. while($data = mysql_fetch_array($qr_result)){
  3. echo '
  4. <tr>
  5. <td>
  6. <form action="/dir.php" method="POST">
  7. <input name="Dir['.$data["nomer"].']"  type="hidden" value="1"/>
  8. <input type="submit" value="Одобрить" />
  9. </form>
  10. </td>
  11. </tr>';
  12. }
  13.  

Методом POST получите массив со значением nomer по нему обновите базу.
Что придёт в POST можно увидеть так:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo '<pre>';
  3. print_r($_POST);
  4. echo '</pre>';
  5.  

 

Powered by ExBB FM 1.0 RC1