这可能是一个简单的问题,但:
我想通过单击图像对数字进行排序。我想我制作一个表单并添加一个imagefield。
<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';
}
一定是那样。感谢:(
只需使用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';
}
在评论后编辑:我不知道为什么会这样——但拥有.x
和.y
是HTML标准中定义的方式。
如果您查看HTML文档中的表单,并向下滚动一点,您将能够阅读:
当定点设备用于单击图像,表单为提交和点击坐标传递给服务器
x值以像素为单位测量图像和以像素为单位的y值从图像顶部
提交的数据包括name.x=x-value
和name.y=y-value
其中"name"是名称的值属性,并且x值和y值为x和y坐标值,分别地
在PHP中,参数名称中的点会自动替换为和unerscore。
因此:
name.x
变为name_x
- CCD_ 16变为CCD_
作为最后一条语句的来源,您可以阅读VariablesFromExternalSources-HTMLForms(GET和POST((引用(:
变量名称中的点和空格为转换为下划线
对于示例<input name="a.b" />
变为$_REQUEST["a_b"]
。
如果我正确阅读了问题,那么将图像作为表单的一部分不会自动将表单作为POST提交。按钮使它工作,因为你实际上是在提交表格。
当您最初加载页面时,它将是一个GET请求,与您向我们显示的表单无关(您可以在页面中使用不同名称的许多其他表单,除非提交,否则同样无效(。当您使用按钮提交时,它会请求index.php并添加POST参数。
是否尝试将onsubmit="submit-form();"
添加到输入元素?
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="index.php">
<input name="buyuka" type="image" src="resimler/azalt.gif" />
</form>
试试这个。
if(isset($_POST['buyuka'])
{
$sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
}
else
{
$sorgu='SELECT * FROM urunler';
}
试试看。
对于图像输入,请尝试添加一个id。您有一个名称,但没有id。
更换
<input name="buyuka" type="image" src="resimler/azalt.gif" />
带有
<input id="buyuka" name="buyuka" type="image" src="resimler/azalt.gif" />