Проблема не связана с Codeigniter, но связана с HTML. Входные данные типа «Изображение» будут отправлять координаты x и y того места, где они были нажаты, или «0» для обоих, если они не нажаты. value
не будет отправлено.
http://www.w3.org/TR/html401/interact/forms.html
Когда указательное устройство используется для щелчка по изображению, форма отправляется и координаты щелчка передаются на сервер. Значение x измеряется в пикселях слева от изображения, а значение y - в пикселях сверху изображения. Представленные данные включают name.x = x-value и name.y = y-value, где «name» - это значение атрибута name, а x-value и y-value - значения координат x и y соответственно.
Однако, это все равно будет работать для вас, поскольку кнопка не нажата не будет отображаться в массиве $_POST
. Вот пример var_dump()
из вашей формы с использованием вашего точного кода, нажав кнопку 1 (но без фактического доступного изображения):
array(3) {
["subtype"]=>
string(0) ""
["button1_x"]=>
string(1) "0"
["button1_y"]=>
string(1) "0"
}
Итак, это немного хакерски, но вы можете просто сделать это, чтобы проверить, какой из них был нажат:
if (isset($_POST['button1_x'])) // Button 1 clicked
Честно говоря, я забыл об этом, пока не посмотрел, так как я никогда не использую image
входы. Вы можете рассмотреть возможность использования стиля submit
или <button type="submit">
. Последний позволяет использовать HTML и с ним легче работать, но остерегайтесь IE6 ...
При <button>
IE6 будет отправлять фактический HTML-контент в качестве значения сообщения вместо value
! К сожалению, я не шучу. Однако вам нужно только проверить, является ли он isset()
, поэтому на самом деле не полагайтесь на value
, если вы используете этот подход. Надеюсь, это прояснит для вас.