PHP $ _POST变量

时间:2012-02-15 15:32:30

标签: php jquery

这是一个图库页面:http://www.metroscap.com/chicago-black-and-white-photos.php 这是一个详细信息页面:http://www.metroscap.com/chicago/1203/traffic-on-michigan-avenue-at-monroe.php

我正在尝试提交以下数据:(但此按钮每页约有15个品种。我的每张照片都有自己的页面。(请参阅详细信息页面和右侧手风琴中的产品 - - 每张照片都有大约25种不同的框架尺寸选项,我已经为它们构建了CSS类。我希望能够让人们将多张图片大小的多张图片提交给我的基本拖放墙,以便他们可以比较照片和他们的框架相互之间的大小。

例如,有人可以提交42“x 42”版本的Columbus | “水平”,两个27英寸版本的亚特兰大|“亚特兰大”和芝加哥|“梦露”在深蓝色的墙上。)

以下是我提交或希望针对每张图片的每种尺寸/帧种类提交的按钮代码,这里有两个按钮。

<form action="http://localhost:8888/drag-drop-test2.php" method="post" style="width: 200px; height: 200px;">
<input type="hidden" name="widthHeightTotal" value="424"  />
<input type="hidden" name="picture" value="http://www.metroscap.com/images/bigJPEGS/columbus/Leveled.jpg" />
<input type="hidden" name="ddClass" value="TPC42test" />
<input type="hidden" name="widthHeight" value="354" />
<input type="submit" value="Add to Wall" />
</form>

<form action="http://localhost:8888/drag-drop-test2.php" method="post" style="width: 200px; height: 200px;">
<input type="hidden" name="widthHeightTotal" value="324"  />
<input type="hidden" name="picture" value="http://www.metroscap.com/images/bigJPEGS/columbus/Leveled.jpg" />
<input type="hidden" name="ddClass" value="TPC32test" />
<input type="hidden" name="widthHeight" value="300" />
<input type="submit" value="Add to Wall" />
</form>

现在在drag-drop-test2.php页面上我想简单地使用foreach循环来打印print_r或通过每个框架大小回显用户希望拖动并在墙上用这个echo语句进行比较

 echo "<div class=\"drag\" style=\"left:20px; height: ".$widthHeightTotal."px;\"><img src=\"".$picture."\" class=\"".$ddClass."\" width=\"".$widthHeight."\" height=\"".$widthHeight."\" /></div>"; 

如果我只提交一张照片到墙上,我就能搞定。我根本无法绕过$ _POST或$ _SESSION数组包裹我的大脑,使其表现得像我想要的那样。

也许php不是我最好的解决方案,也许是jquery。我不确定。我不一定是程序员或开发人员,但我知道自己很危险,特别是如果它是一个尖锐的$ obj。

-------------更新----------- 我已从按钮代码中删除括号。

好的,在发表这里之前,我已经与foreach声明争论了一个星期。当我这样做时(按照建议):

foreach ($_POST as $key => $value) {
$$key = $value;
echo "<div class=\"drag\" style=\"left:20px; height: ".$widthHeightTotal."px;\"><img src=\"".$picture."\" class=\"".$ddClass."\" width=\"".$widthHeight."\" height=\"".$widthHeight."\" /></div>";
}

以下是输出结果:

<div class="drag" style="left:20px; height: 324px;"><img src="" class="" width="" height="" /></div>
<div class="drag" style="left:20px; height: 324px;"><img src="http://www.metroscap.com/images/bigJPEGS/columbus/Leveled.jpg" class="" width="" height="" /></div>
<div class="drag" style="left:20px; height: 324px;"><img src="http://www.metroscap.com/images/bigJPEGS/columbus/Leveled.jpg" class="TPC32test" width="" height="" /></div>
<div class="drag" style="left:20px; height: 324px;"><img src="http://www.metroscap.com/images/bigJPEGS/columbus/Leveled.jpg" class="TPC32test" width="300" height="300" /></div>

回波线的四个实例,每个循环只存放一个值,直到第四次迭代最终用正确的值填充整个线。我根本不理解foreach中发生的事情的逻辑。即便如此,当我尝试返回我的按钮页面并向页面添加不同的项目时,我不会得到8个项目的两个不同的东西(每个四个)我只得到一个项目。

如果我想要的只是这个页面上的一个项目,我在页面上只有一条回声线,只需将我的回声线设为:

echo "<div class=\"drag\" style=\"left:20px; height: ".$_POST['widthHeightTotal']."px;\"><img src=\"".$_POST['picture']."\" class=\"".$_POST['ddClass']."\" width=\"".$_POST['widthHeight']."\" height=\"".$_POST['widthHeight']."\" /></div>";

并且不用担心将该行放在foreach中或做...而因为我只想在页面上找到一个项目。

我想要的是能够拥有35(这有点矫枉过正,但我​​有点过分才能说明一点)不同的图片最终会出现在这个页面上。实际上,理想情况下,有35种不同的尺寸。

我显然比我想象的更笨。

1 个答案:

答案 0 :(得分:2)

尝试从每个字段的名称中删除这些括号[ ],因为这使得数组不仅仅是变量。

因此,例如,不要使用widthHeight[],而只将其设为widthHeight

要在$ _POST数组中接收它,它将是$_POST['widthHeight']