【问题标题】:Send variable from one page to another in wordpress template在wordpress模板中将变量从一页发送到另一页
【发布时间】:2013-03-15 21:06:33
【问题描述】:

我正在尝试将日期从一个 wordpress 模板表单传递到另一个。为简单起见,我创建了两个模板(并将它们与 WP 页面关联为标准页面),如下所示:

<?php
/*
Template Name: Form test
*/
get_header(); 
?>

<form action="/form-result/" method="post">
<input type="text" name="name" size="20" />
<input type="submit" value="Go" />
</form>

<a href="/form-result/">Result page</a>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

<?php
/*
Template Name: Form result
*/
get_header(); 
$name = $_REQUEST['name'];
?>

And the name is <?=$name?>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

当我单击文本链接结果页面时,我会进入/form-result/ 页面,但是,如果我提交表单,则会收到页面未找到之类的错误。经过验证,我发现问题出在试图将变量从一个页面传递到另一个页面。

进一步分析,我发现&lt;a href="/form-result/?name=Elodie"&gt;Result page&lt;/a&gt; 得到一个错误页面,而&lt;a href="/form-result/"&gt;Result page&lt;/a&gt; 将我正确地带到下一页。

可能我错过了一些小东西。

这里有什么帮助吗?

【问题讨论】:

  • 您是否收到“页面未找到”(404) 错误或其他错误?
  • @s_ha_dum,抱歉,已更新。
  • 是的@Ken。没错。
  • 您通常可以在这些 URL 上添加 ?anything=else。我一直在玩这个来检查。您所做的事情有些特殊,根据所提供的信息我无法发现。

标签: wordpress


【解决方案1】:

问题解决了。就是这样,我用于此测试的变量“名称”是 WP 关键字,代表模板名称。在没有模板名称的情况下,它会查找 url slugs 开头与变量名称匹配的其他页面。

我更改了变量名,它可以正常工作。

【讨论】:

    【解决方案2】:
    <?php
    /*
    Template Name: Form
    */
    ?>
    
    <?php get_header(); ?>    
    
    <form action="/form-result/" method="post">
      <input type="text" name="name" size="20" />
      <input type="submit" value="Go" />
    </form>
    
    <a href="/form-result/">Result page</a>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    

    修改您的结果页面。

    <?php
    /*
    Template Name: Form Result
    */
    ?>
    
    <?php get_header(); ?>    
    
    <?php if(isset($_POST['name'])) {
      echo $_POST['name'];
    } ?>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    

    【讨论】:

      【解决方案3】:

      尝试在表单中添加指向结果页面的链接,如下所示:

      <button type="submit" name="submitted" id="submitted" class="submit">Submit</button>
      

      在结果页面上:

      if(isset($_POST['submitted'])) {
      $name = $_POST['name'];
      
      }
      

      要传递表单数据,您需要通过提交发布表单。 您可以使用 jquery 在外部执行此操作,如下所示:

      $el.click($('#form_name').submit());
      

      -d

      【讨论】:

      • 这对@Darren 没有帮助。
      猜你喜欢
      • 2011-12-05
      • 2012-09-27
      • 2017-02-14
      • 2023-03-30
      • 2014-10-13
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多