渡された投稿のタイトルと本文を印刷するpost-plain-body
というページテンプレートがあります。 AjaxLoader
という名前のページがこのテンプレートを使用します。例えば/ajaxloader
とid
とを$_POST['id']
の値と呼ぶと、その投稿の内容が表示されます。Ajaxed loadedコンテンツが正常に動作しない
これは、メインページでjQuery経由で呼び出されます。実際にはポスト/ページの内容を特定のコンテキストにロードします。
ロードするページの1つに、Contact Form 7
フォームが含まれています。フォームが表示されますが、フォームを検証するためにAjaxを使用するのではなく、提出すると/ajaxloader/#wpcf7-f2-p34-o1
になります。
これはページテンプレートです。コンテンツをロードしている
<?php
/*
Template Name: Ajax Loader
*/
// Load contact form 7 scripts
if (function_exists('wpcf7_enqueue_scripts')) {
wpcf7_enqueue_scripts();
wpcf7_enqueue_styles();
}
// Gets the content only from a post. Used in ajax loading
if(isset($_POST['id'])):
$post = get_post($_POST['id']);
if ($post) : setup_postdata($post);
?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
</div><?php
endif;
else:?>
<h2>Page not found</h2><?php
endif;
?>
とjQueryは<form>
は7つのスクリプトそれが必要として、お問い合わせフォームに添付されていない
function load_page(pid) {
$("#page_preview").load("ajaxloader/", {id:pid},function(){
$('#page_preview').fadeIn(300);
$('#page_loading').hide();
});
}
次EDIT
です。私は、firebugでjavascriptデバッグを使ってこれを見つけました。通常、それはclick
とsubmit
イベントに2つのハンドラを付けるべきです。それが添付されていない理由は何ですか?
フォームがsubmitedされます。私がそれを提出すると、検証なしで '/ ajaxloader'をロードします。問題は別のページに移動することですが、検証しない理由を見つけることが重要です。私はjqueryの競合を考えています。 – Odys
@Odys - よく... jsfiddleでソースを与えることができない場合は、ブレークポイントとFirebugを使用してjsの段階的実行を見て問題を見つけてください。 – mmhan