我查看过相关帖子,但我不够专业,无法判断我读过的任何回复是否适用于我的情况。
我有一个相当复杂的表单 - 表单是从数据库中动态自动生成的,并且有效 - 填写,提交,一切都很好。
现在,这个表单基本上(但不完全)是一个订单 - 所以想象一下,你可以填写多达10个你想要的10个不同的项目(数量等),点击提交,并获得收据。出于此示例的目的,这意味着有一个FORM页面,当用户点击提交时将其发送到RECEIPT页面。
我想要做的是允许用户在某些情况下根本不必处理此表单。例如,如果他们所做的只是获取一个小部件(而不是其他任何东西),我希望他们能够点击小部件个人资料页面上的“购买小部件”按钮并直接进入RECEIPT页面,完全跳过该表单(因为他们不关心任何东西,除了小工具。)
所以,基本上,我希望Widget页面能够调用预填充的表单页面,并预先提交 - 填写Widget相关数据。 (如果我使用了错误的术语,我很抱歉 - 这是由其他人建造的,不幸的是,我做了一些清理/收尾工作,但我不是PHP的专家。)
有什么建议吗?如果可能的话,我真的很乐意保留URL的数据OUT,但如果这会增加一百倍的复杂性,我会使用URL解决方案。
谢谢。
编辑:(包括来自@ AJ答案评论的代码:)
好吧,我想我是那里的一部分。我有以下代码:print '<form name="input" action="order.php" >';
$field_name = 'widget';
/* fill in */
$field_value = '10';
/* fill in */
echo '<input type="hidden" name="'.$field_name.'" value="'.$field_value.'">';
echo '<input type="submit" value="submit" name="submit" />';
print '</form>';
但这不会触发表格中的以下内容:
if(isset($_POST['submit'])) { print 'triggering'; } else { print 'not triggering'; }
答案 0 :(得分:1)
“购买窗口小部件”按钮,无论在哪个页面上实施,点击后都需要能够发送POST请求到当前的表单操作脚本>形式。有几种选择:
将现有表单的“隐藏”版本发送给集成商添加“购买窗口小部件”按钮...它实际上实现了所有相同的字段,但输入类型设置为hidden
和填写的所有值。
使用jQuery.ajax()之类的内容发送相同类型的请求,但使用javascript代替隐藏的表单字段
答案 1 :(得分:1)
您可以使用隐藏元素(与真实形式相同,使用您自己的值)制作自己的表单,这些元素会发布到与真实表单相同的位置。
答案 2 :(得分:0)
表单只是一种收集数据的方法。在幕后,当提交表单时,浏览器会收集表单中的所有数据,并将其作为POST或GET请求提交给您的服务器。
要模拟表单提交,您只需要以服务器识别它的方式组合所有数据。
这样做很容易:
<?php
header( "Location: http://yourdomain.com/checkout.php?<data>" );
?>
替换为您的表单数据:如果您有一个名为“city”的表单字段且值为“MyTown”,则值为“12345”的“zipcode”字段将为:
city=MyTown&zipcode=12345
您的代码将是:
header( "Location: http://yourdomain.com/checkout.php?city=MyTown&zipcode=12345" );
通过这种方式,您可以将表单数据提交给服务器,而无需向用户提供表单。