Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > В $_POST "левые" переменные... или я не прав?


Автор: Michael.de 18.10.2009, 22:58
Всем привет smile

Исходная ситуация: В скрипте мне нужно было выяснить, на какую из 2х кнопок нажал юзер. Имена инпутов i1 и i2, т.е. я расчитывал обнаружить $_POST['i1'] или $_POST['i2']... посмотрел содержимое $_POST : там вместо i1 переменные i1_x и i1_y smile

Я написал тест:
Код

<?php
 // Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9
 error_reporting(E_ALL);
 ini_set('display_errors', 'on');

if (isset($_POST['i1_x'])||isset($_POST['i2_x'])) {
 // this is just a test :)
 if (isset($_POST['i1_x'])) echo 'left';
 else echo 'right';
}

echo "
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
<html>
 <head>
  <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
  <title></title>
  <style type='text/css'>
   .example {width:300px;background-color:#EEE;border:1px solid #88F;margin:1cm auto;}
   .p1 {margin-top:2px;cursor:pointer}
   .p2 {width:25px}
   td {text-align:center}
  </style>
 </head>
 <body>
  <form name='send' method='post' action='".$_SERVER['PHP_SELF']."'>
   <table class='example' rules='all'>
    <tbody>
     <tr>
      <td colspan='3'>
       <table style='width:100%'>
        <tr>
         <th class='p2'>
          <input class='pic' name='i1' type='image' src='l.gif' alt='back'>
         </th>
         <th>Proposal</th>
         <th class='p2'>
          <input class='pic' name='i2' type='image' src='r.gif' alt='forward'>
         </th>
        </tr>
       </table>
      </td>
     </tr>
     <tr><td>1</td><td>2</td><td>3</td></tr>
     <tr><td>4</td><td>5</td><td>6</td></tr>
     <tr><td>7</td><td>8</td><td>9</td></tr>
    </tbody>
   </table>
  </form>
 </body>
</html>
";
?>

Вопрос: Это стандартное решение для POST запроса (то что я использую эти переменные с _x и _y), или я что-то перепутал в нём или в HTML коде?
Заранее спасибо smile

Автор: Ипатьев 18.10.2009, 23:00
так и должно быть

Автор: Michael.de 18.10.2009, 23:10
Ипатьев: ну и скорость ответа, я свой вопрос ещё отредактировать не успел smile)
А что это за переменные? Да и числовые значения у них странные... может есть ссылка для чтения?

P.S. для GET запроса (в моём случае) переменные будут $_GET['i1'] или $_GET['i2'], или снова с _x и _y?

Автор: Ипатьев 18.10.2009, 23:18
Те, что посылает браузер.
Как бы быстро я не ответил, самостоятельно посмотреть, что пришлет GET - еще быстрее

Автор: Michael.de 18.10.2009, 23:45
Цитата(Ипатьев @  18.10.2009,  23:18 Найти цитируемый пост)
Как бы быстро я не ответил, самостоятельно посмотреть, что пришлет GET - еще быстрее
Не соглашусь.  Тестирование заняло 2 минуты, ответ типа "да, с _x и _y" - 15 секунд smile

Ещё раз спасибо. Ответ дан, тема закрыта smile

Автор: youri 19.10.2009, 00:32
http://www.php.net/manual/en/language.variables.external.php

Автор: NLspieler 19.10.2009, 01:44
Короче, дело в том, что при использовании 
инпутов submit серверу отсылается 
$_POST['имя_субмита'] = надпись, т.е. value

При использовании image серверу отсылается:
$_POST['имя_имайджа_x'] = икс координа того места, куда была нажата мышка на кнопке - изображении.
$_POST['имя_имайджа_y'] = игрик координа того места, куда была нажата мышка на кнопке - изображении.

Автор: Michael.de 19.10.2009, 20:43
Цитата(NLspieler @  19.10.2009,  01:44 Найти цитируемый пост)
При использовании image серверу отсылается:
$_POST['имя_имайджа_x'] = икс координа того места, куда была нажата мышка на кнопке - изображении...
Я, кстати, вчера сам до этого дошёл (правда не сразу: размеры картинки всего 22х22 - приходящие числа были то 8 то 12 smile ). Полученные координаты клика по картинке могут быть весьма полезны... правда не в моём случае.
Ещё раз всем спасибо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)