有一個頁面模板,名爲post-plain-body
,它打印傳遞的帖子的標題和正文。名爲AjaxLoader
的頁面使用此模板。例如,如果我將/ajaxloader
作爲id
作爲$_POST['id']
的值,則會顯示該帖子的內容。Ajaxed加載的內容不會像應該那樣運行
這是通過主頁上的jQuery調用。它實際上將帖子/頁面的內容加載到特定的上下文中。
我加載的頁面之一包含一個Contact Form 7
窗體。表單會顯示出來,但是當我提交時,它會轉到/ajaxloader/#wpcf7-f2-p34-o1
而不是使用Ajax來驗證表單。
這是頁面模板。
<?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的是加載內容如下
function load_page(pid) {
$("#page_preview").load("ajaxloader/", {id:pid},function(){
$('#page_preview').fadeIn(300);
$('#page_loading').hide();
});
}
編輯
的<form>
沒有連接到聯繫表7個腳本,因爲它應該。我發現這個在firebug中使用javascript調試。通常,它應該有兩個處理程序連接到click
和submit
事件。任何建議,爲什麼它不附加?
它已被證實後,形式submited。當我提交它時,它會在沒有驗證的情況下加載'/ ajaxloader'。雖然問題在於它進入了另一個頁面,但找到它不驗證的原因更爲重要。我正在考慮jQuery衝突。 – Odys
@Oys - 好的...嘗試使用斷點和螢火蟲來逐步執行js來查找問題,如果您無法在jsfiddle上給我們提供源代碼。 – mmhan