Php Can';在$\u POST中找不到输入类型=图像值

Php Can';在$\u POST中找不到输入类型=图像值,php,mysql,forms,imagefield,Php,Mysql,Forms,Imagefield,也许这个问题很简单,但: 我想通过单击图像对数字进行排序。我想我制作了一个表单并添加了一个imagefield <form id="form1" name="form1" method="post" action="index.php"> <input name="buyuka" type="image" src="resimler/azalt.gif" /> </form> 然而,它没有排序。当我尝试添加submit按钮以添加imagefield时,它起作

也许这个问题很简单,但:

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

<form id="form1" name="form1" method="post" action="index.php">
<input name="buyuka" type="image" src="resimler/azalt.gif" />
</form>
然而,它没有排序。当我尝试添加submit按钮以添加imagefield时,它起作用了。这意味着我犯了一个基本的错误,但我找不到

谢谢你的帮助。:)

编辑-已解决

实际上正如帕斯卡·马丁所说:

if(isset($_POST['buyuka_x'], $_POST['buyuka_y']))
{
    $sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
}
一定是这样。谢谢:)

试试看。

只需使用查看
$\u POST中的内容即可:

var_dump($_POST);
您将看到,当使用
提交表单时,您会得到:

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

因此,没有
$\u POST['buyuka']
——而是:

  • $\u POST['buyuka\u x']
  • $\u POST['buyuka\u y']
这意味着您的代码应该是这样的(不测试不存在的
buyuka
条目,测试两个
\ux
\uy
——我想测试其中一个就足够了):



在注释后编辑:我不知道为什么会这样——但HTML标准中是如何定义
.x
.y

如果您查看并向下滚动一点,您将能够阅读:

当使用定点设备 单击图像,表单将显示 提交并单击坐标 传递给服务器
x值 从左起以像素为单位测量 图像和y值(以像素为单位) 从图像的顶部<这个 提交的数据包括
name.x=x-value
name.y=y-value
其中“name”是名称的值 属性,并且x值和y值是 x和y坐标值, 分别

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

  • name.x
    变成
    name\ux
  • name.y
    变成
    name\u y
作为最后一条语句的源,您可以读取变量(引用):

变量名中的点和空格是 转换为下划线<用于 示例
变为
$\u请求[“a\u b”]


对于图像输入,请尝试添加id。您有名称,但没有id

替换

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


如果我正确阅读了问题,那么将图像作为表单的一部分不会自动将表单作为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()
和你的块的开头
{}
后面的那一行是文章中的打字错误吗?你需要阅读
$\u post['buyuka.x']
。搜索更多信息。@jmz,PHP将发布的数据键中的点转换为下划线@查尔斯:现在,你知道了;-)(非常有用;-)我想看看那只手后面的脸。帕斯卡,为什么图像有两个东西(x和y)?为了让生活变得困难?:)@echophp我已经编辑了我的答案,添加了一些关于这方面的附加信息(在HTML端和PHP端)。
input
id被服务器忽略。我不确定是谁否决了你,但是input
id
属性在发布时没有提交。我明白了。只是注意到它不见了,因为我从来没有遇到过同样的问题,他认为这可能会有所帮助。输入id未在post中提交…-1
if(isset($_POST['buyuka_x'], $_POST['buyuka_y']))
{
    $sorgu='SELECT * FROM urunler ORDER BY uyeno DESC';
}
<input name="buyuka" type="image" src="resimler/azalt.gif" />
<input id="buyuka" name="buyuka" type="image" src="resimler/azalt.gif" />
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action="index.php">
     <input name="buyuka" type="image" src="resimler/azalt.gif" />
</form>