3

好吧,这可能是一个简单的问题,但是:

我想通过单击图像对数字进行排序。我以为我制作了一个表格并添加了一个图像字段。

<form id="form1" name="form1" method="post" action="index.php">
<input name="buyuka" type="image" src="resimler/azalt.gif" />
</form>

然后我会写这些代码。

$sorgu='SELECT * FROM urunler';

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

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

$sonuclar=mysql_query($sorgu);

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

谢谢你的帮忙。:)

编辑---解决了

实际上正如 Pascal Martin 所说:

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

一定是这样的。谢谢 :)

4

5 回答 5

15

只是var_dump()用来查看里面有什么$_POST

var_dump($_POST);

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

array
  'buyuka_x' => string '0' (length=1)
  'buyuka_y' => string '0' (length=1)


所以,没有$_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';
}



在评论后编辑:我不知道为什么会这样——但是有 a.x和 a.y是它在 HTML 标准中的定义方式。

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

当使用定点设备单击图像时,会提交表单并将单击坐标传递给服务器。
x 值以图像左侧的像素为单位,y 值以图像顶部的像素为单位。
提交的数据包括 name.x=x-valuename.y=y-value 其中“name”是name属性的值,x-value和y-value分别是x和y坐标值。

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

  • name.x变成name_x
  • name.y成为name_y

作为最后一条语句的来源,您可以阅读来自外部来源的变量- HTML 表单(GET 和 POST) (引用)

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

于 2011-04-15T20:12:21.817 回答
0

如果我正确阅读了问题,那么将图像作为表单的一部分不会自动将表单作为 POST 提交。该按钮使它起作用,因为您实际上是在提交表单。

当您最初加载页面时,它将是一个与您向我们展示的表单无关的 GET 请求(并且您可以在页面中有许多其他表单使用不同的名称,除非它们自己提交,否则同样没有效果)。当您使用按钮提交时,它会请求 index.php 并添加 POST 参数。

尝试添加onsubmit="submit-form();"到输入元素?

于 2011-04-15T20:17:11.403 回答
0
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="index.php">
     <input name="buyuka" type="image" src="resimler/azalt.gif" />
</form>

试试这个。

于 2011-04-15T20:17:27.013 回答
-1
    if(isset($_POST['buyuka'])
    {
        $sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
    } 
    else 
    {
        $sorgu='SELECT * FROM urunler';
    }

试试这个。

于 2011-04-15T20:11:57.940 回答
-2

对于图像输入,请尝试添加一个 id。你有名字,但没有身份证。

代替

<input name="buyuka" type="image" src="resimler/azalt.gif" />

<input id="buyuka" name="buyuka" type="image" src="resimler/azalt.gif" />
于 2011-04-15T20:14:25.867 回答