2012-12-09 73 views
0

jQuery的AJAX回調我開發WP自定義主題,我有一個問題,AJAX回調... 這是我的頭:使用wordpress主題

<script>  
//alert("Data Loaded"); 
    $('#domaincheck').submit(function(){ 
     alert("Button pressed"); 
     $.post('<?php bloginfo('template_directory'); ?>/check.php', $(this).serialize(), function(data){ 
     alert("Data Loaded: " + data); 
     });    
     return false; 
    }); 
</script> 

在我的主題文件,我有簡單的格式如:

<form id="domaincheck"> 
Name: <input type="text" name="urname"> 
Birthplace: <input type="text" name="urbirth"> 
<input type="submit" name="submit" value="Submit"> 
</form> 

現在,當我點擊提交按鈕 - 網頁只是重新加載:(當我移動了這一點,WordPress的一切正常的有沒有辦法讓這個在WordPress的工作也是另一種奇怪的是,當?我將JS代碼封裝在「文檔準備好」中 - javascript不是w在所有....沒有documentready它顯示警報 - 但不是回調 - 它只是重新加載頁面...再次 - 除了wordpress模板之外,它的作品就像它應該。

謝謝,彼得

+0

我假設#domaincheck實際上是提交。嘗試更改函數()來運行(ev),然後在警報(「按下按鈕」)之前,將一個ev.preventDefault(); – kennypu

+0

感謝您的回覆,但這並沒有幫助。 – Peter

+1

在wordpress中做Ajax有點「不同」,你應該使用內置的函數,比如已經定義好的「ajaxurl」等。下面是一個[** LINK **](http://codex.wordpress.org/AJAX_in_Plugins)如何通常在插件,小部件等 – adeneo

回答

1

我已經在我的本地完成,這是做一個AJAX調用非常精細:

我在<head>

<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script> 
<script type='text/javascript'> 
    $(function(){ 
     $('#domaincheck').submit(function(e){ 
      e.preventDefault(); 
      alert("Button pressed"); 
      $.post('<?php bloginfo('template_directory'); ?>/check.php',$(this).serialize(), function(data){ 
       alert("Data Loaded: " + data); 
      }); 
     }); 
    }); 
</script> 

header.php文件added one main jquery plugin參考而這一次check.php文件php代碼:

<?php 
    if((isset($_POST['urname'])) && (isset($_POST['urbirth']))){ 
     echo $_POST['urname']; 
     echo $_POST['urbirth']; 
    } 
?> 

我收到了發佈數據的提醒。

試試看看是否有幫助。

+0

這樣做的工作,但我有一個問題... WP已經默認加載jQuery。現在,當我刪除調用jquery(從該腳本的頂部),jquery通過WP默認加載並且功能不起作用。當我恢復調用谷歌託管jQuery的那一行 - 腳本再次工作,但我有2個jQuery加載(WP默認和這個谷歌託管)。那是我應該關心的事情嗎? – Peter

+0

實際上我看到了wordpress的來源,我沒有找到當前主題使用的任何jquery插件。所以如果你的主題是有jQuery的,那麼應該沒有問題。否則你必須把這個鏈接。 – Jai

+0

現在我所做的是我更改了我的functions.php中的默認WP jquery,如下所示:if(!is_admin()){wp_deregister_script('jquery'); wp_register_script('jquery',(「http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js」),false,'1.8.3'); wp_enqueue_script('jquery'); } ...它加載了這個版本,但是當我從腳本中刪除第二個腳本時(儘管它加載了相同的jQuery腳本),我的腳本仍然無法工作......我只是猜測我需要2個實例爲此工作...不知道爲什麼... – Peter