2013-03-15 3 views
4

Я пытаюсь передать дату из одной формы шаблона Wordpress в другую. Чтобы сделать это просто, я создал два шаблона (и связанные с ними с WP страниц в качестве стандартной страницы) следующим образом:Передать переменную с одной страницы на другую в шаблоне Wordpress

<?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(); ?> 

Когда я нажимаю на текстовую ссылку страницы результатов I перейдите на страницу /form-result/, однако, если я отправлю форму, я получаю страницу не найденной ошибки. После проверки я обнаружил, что проблема заключается в попытке передать переменную с одной страницы на другую.

Pusing далее, я обнаружил, что <a href="/form-result/?name=Elodie">Result page</a> получить страницу с ошибкой, тогда как <a href="/form-result/">Result page</a> вернет меня на следующую страницу.

Возможно, у меня что-то не хватает.

Любая помощь здесь?

+0

Вы получаете ошибку «Страница не найдена» (404) или что-то еще? –

+0

@s_ha_dum, извините, обновлено. – Jeremy

+0

Да @ Ken. Это точно. – Jeremy

ответ

5

Вопрос решен. Это было то, что переменная «имя», которую я использовал для этого теста, является ключевым словом WP и обозначает имя шаблона. В отсутствие имени шаблона он ищет другие страницы, где начало URL-адресов совпадает с именем переменной.

Я изменил имя переменной, и оно сработало так, как должно.

0

Попробуйте добавить ссылку на страницу результатов в виде так:

<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

+0

Это не помогает @ Даррен. – Jeremy

1
<?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(); ?> 
+1

Это не работает @Khairul. – Jeremy

Смежные вопросы