我是wordpress的新手,我想在wordpress中将数据从一个页面传输到另一个页面。我使用php将表单数据发布到wordpress页面。我的代码是:
<form method='post' action='http://www.example.com/www/create_website/'>
.....
<input type ='submit' value = 'OK'/>
</form>
但每次我点击提交按钮时都会找不到错误页面。为什么会这样,因为链接正在浏览器中加载页面但不适用于表单发布。我该如何解决这个问题?
答案 0 :(得分:3)
花了大约一天的时间来弄清楚如何做到这一点,我认为它可能对stackoverflow社区中的其他人有所帮助。
目标:从表单字段中获取结果并在另一页上使用它。
在此示例中,我的客户希望用户能够在文本字段中填写任何金额以进行Paypal付款。我使用S2Member插件创建按钮并挂钩Paypal付款,但他们没有提供此功能 - 只有按键硬连线的按钮。
你可以在这里看到这个:
http://virginiabloom.com/?page_id=250。但它是LIVE。如果您开始支付宝贝,它将从您的帐户中扣除款项。这将使弗吉尼亚非常高兴。
我如何解决它:
首先,我为这个领域创建了一个表单。
输入其他付款金额$
接下来,我在stackoverflow上找到了一个非常简单的插件,并根据我的需要进行了调整:
<?php
/*
Plugin name: redirect on post
Desciption:
http://stackoverflow.com/questions/13686245/how-to-create-a-custom-url-based-on-dropdown-in-wordpress-form-submission
I-changed-dropdown-to-field-input
*/
function redirect_on_submit() {
// check if the post is set
if (isset($_POST['amount']) && ! empty ($_POST['amount']))
{
header( "Location: yourUrl.com/?
page_id=542&amount=" . $_POST['amount'] );
}
}
add_action('init', redirect_on_submit);
注意:更改标题中的页面URL和ID信息以指向要将信息发送到的Wordpress页面。 如果您不知道如何手动安装插件,则非常简单。 将代码段保存为.php文件。打开您的主机帐户并找到plugins文件夹(在wp-content文件夹中)将文件复制到该文件夹中。 回到Wordpress并查看你的插件。你应该在那里看到它。如果未激活,则激活它。
我安装了另一个插件: 在帖子和页面中允许PHP(版本3.0.4)
安装后,该插件将出现在Wordpress菜单上。
打开它,您可以使用他们的代码片段制作工具,将PHP放入短代码中的帖子中。
配置:
显示片段未找到消息:是(用于调试)
使用旧的(pre.2.2代码:没有
使用高级过滤方法:是的
在安装时删除所有插件数据:否
您应该会看到代码段框出现在页面底部。
我的片段很简单。我只想回应&#34;数量&#34;来自页面网址的参数。所以它看起来像这样:
echo $_GET['amount']?>
请注意,您必须放置结束的php标记,而不是开始标记。 现在,您只需在页面上使用短代码[php function = 1],无论您希望获得此参数。
以下是我的结果页面上的内容。
<h2>Payment of $ [php function=1]</h2>
<strong><em>Click Paypal button to start payment or cancel.</em></strong>
[s2Member-PayPal-Button sp="1" ids="xxx" exp="24" desc="Payment" ps="paypal" lc="" cc="USD" dg="0" ns="1" custom="yoururl.com"
ra="[php function=1]" image="default" output="button" /]
为了确保用户只能输入十进制数,我在表单上使用了jQuery验证。还有其他方法可以做到,但这很简单。只需将此代码放在页面上,其中包含我在下面列出的表单。
<form id="myform" action="http://virginiabloom.com/?page_id=542" method="post"><span style="font-size:1.5em;">Enter Other Payment Amount $</span><input id="amount" class="left" name="amount" type="text" /><input type="submit" value="Submit" /></form>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>
<script>
$( "#myform" ).validate({
rules: {
amount: {
required: false,
number: true
}
}
});
</script>
那就是它!我希望这有助于某人。
答案 1 :(得分:2)
如果您需要访问其中一个WordPress页面,请不要直接链接。 而不是把下面的PHP代码。
<form method='post' action='<?php bloginfo('url'); ?>/your-page-name/' >
如果您想转到模板目录中的特定文件,请输入以下代码
<form method='post' action='<?php bloginfo('template_url'); ?>/your-page.php' >
选中WordPress codex page for more about bloginfo。
<?php bloginfo('url'); ?>
将生成基本网站网址。