5

あるワードプレス テンプレート フォームから別のフォームに日付を渡そうとしています。簡単にするために、次のように 2 つのテンプレートを作成しました (そしてそれらを標準ページとして 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/ページが表示されますが、フォームを送信すると、ページが見つからないというエラーが表示されます。確認したところ、問題はあるページから別のページに変数を渡そうとしたことが原因であることがわかりました。

<a href="/form-result/?name=Elodie">Result page</a>さらに押し込むと、エラーページが表示されるのに対し<a href="/form-result/">Result page</a>、次のページに適切に移動することがわかりました。

おそらく私は何か小さなものを見逃しています。

ここで何か助けはありますか?

4

3 に答える 3

5

問題は解決しました。このテストに使用した変数「name」は WP キーワードであり、テンプレート名を表します。テンプレート名がない場合、URL スラッグの先頭が変数名と一致する他のページを探します。

変数名を変更したところ、正常に機能しました。

于 2013-03-21T07:21:50.883 に答える
0

次のように、フォーム内の結果ページへのリンクを追加してみてください。

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

そして結果ページで:

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

}

フォーム データを渡すには、submit 経由でフォームを投稿する必要があります。次のように jquery を使用して外部でこれを行うことができます。

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

-d

于 2013-03-16T22:28:42.367 に答える