在$ _POST中找不到输入类型=图像值

ech*_*php 2 php mysql forms imagefield

好吧可能是简单的问题但是:

我想通过单击图像对数字进行排序.我以为我做了一个表格并添加了一个图像场.

<form id="form1" name="form1" method="post" action="index.php">
<input name="buyuka" type="image" src="resimler/azalt.gif" />
</form>
Run Code Online (Sandbox Code Playgroud)

然后我会写这些代码.

$sorgu='SELECT * FROM urunler';

if(isset($_POST['buyuka'])

{
    $sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
}

$sonuclar=mysql_query($sorgu);
Run Code Online (Sandbox Code Playgroud)

但它没有排序.当我尝试添加提交按钮以添加图像域时,它的工作原理.所以这意味着我犯了一个非常基本的错误,但我找不到它.

谢谢你的帮忙.:)

编辑---解决了

实际上帕斯卡马丁说:

if(isset($_POST['buyuka_x'], $_POST['buyuka_y']))
{
    $sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
}
Run Code Online (Sandbox Code Playgroud)

一定是这样的.谢谢 :)

Pas*_*TIN 14

只是var_dump()用来看看有什么$_POST:

var_dump($_POST);
Run Code Online (Sandbox Code Playgroud)

您会看到,当您使用表单提交表单时<input type="image">,您会得到:

array
  'buyuka_x' => string '0' (length=1)
  'buyuka_y' => string '0' (length=1)
Run Code Online (Sandbox Code Playgroud)


所以,没有$_POST['buyuka']- 相反,有:

  • $_POST['buyuka_x']
  • $_POST['buyuka_y']

这意味着你的代码看起来应该是这样的(不测试不存在的buyuka条目,测试两者_x并且_y- 我认为测试其中一个应该足够了):

if(isset($_POST['buyuka_x'], $_POST['buyuka_y']))
{
    $sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
}
Run Code Online (Sandbox Code Playgroud)



评论后编辑:我不知道为什么会这样 - 但是有一个.x和一个.y是如何在HTML标准中定义的.

如果您查看HTML文档中的表单,然后向下滚动一下,您将能够阅读:

使用指点设备单击图像时,将提交表单并将点击坐标传递给服务器.
x值是以图像左侧的像素为单位测量的,y值是从图像顶部开始的像素值.
提交的数据包括 name.x=x-value并且name.y=y-value 其中"name"是name属性的值,并且x值和y值分别是x和y坐标值.

在PHP中,参数名称中的点自动替换为unerscore.
所以:

  • name.xname_x
  • name.y成为name_y

作为最后一个语句的源,您可以从外部源 读取变量- HTML表单(GET和POST)(引用):

变量名中的点和空格将转换为下划线.
例如<input name="a.b" />变成 $_REQUEST["a_b"].