2011-11-29 97 views
0

我试图从HTML窗体传递一个值。基本上我有一个文本框的形式,并表格张贴到自己。我正在使用它来检查优惠券代码是否有效。如果我在文本字段中输入有效优惠券并按下键盘上的回车键,则会调用页面(发布到同一页面),在文本框中传递值但不应用折扣。但如果我输入一个有效的优惠券代码,而不是按下键盘上的输入键,并点击提交按钮,它会调用页面并传递值和优惠券代码获取设置从窗体帖子填充PHP变量

我已经使用一些调试工具来捕获正在发送什么,并通过POST发送该值。

这仅仅是IE浏览器中的一个问题。 FIREFOX,CHROME和其他浏览器可以很好地工作。我试图IE8和IE7都没有工作。

我认为它应该仍然应用折扣,无论我按下回车键还是使用提交按钮。有没有人有任何想法我可以改变,以纠正这种情况,并在IE浏览器中工作?我们页面用HTML和PHP编码。

+3

我们需要一些代码来帮助;) – jValdron

回答

1

隐藏字段添加到您的形式,像

<input type="hidden" name="submitted" value=1> 

然后在网页上,而不是如果按提交按钮执行代码,检查是否

$_POST['submitted']==1 
+1

在我看来,你不应该使用$ _REQUEST,因为它汇总了$ _POST,$ _GET和$ _COOKIE。只使用你的表单正在使用的内容:'if($ _ POST ['submitted'] == 1)' – Ben

0

我我会假设你的输入是type="image"。无论出于什么不合理的原因,IE只发送图像点击提交的坐标而不是其值。因此,“输入”键永远不会给你在IE中提交图像的价值。解决方法是将其更改为type="submit"并为其提供背景图像,或在表单中放置隐藏的输入以指示提交。

0

一些示例代码会很好,但在此期间,您是否尝试过倾销$ _Post?

<?php 
    print_r($_Post); 
?> 

这将返回一个表单中提交的所有东西的数组,所以你可以有一个想法它的期望。

另外,你是如何计算折扣? 需要考虑的事情,而不是重新提交整个页面,是看看AJAX HTTPRequest
然后,你可以让他们键入代码,点击查找按钮,然后页面将其传递到计算完成的另一个页面,然后该值将返回到第一页。这样你甚至不用重新加载所有的烦恼,而且看起来更顺畅。