2013-10-15 146 views
0
我遇到了很多的麻煩得到這個代碼工作

.PHP:的WordPress:POST與阿賈克斯

<script type = "text/javascript"> 

jQuery(document).ready(function($){ 

$('#submitbutton').click(function(){ 

    var email=document.getElementById('emailadd').value; 
    var password=document.getElementById('pass').value; 

    $.ajax({ 
    type: "POST", 
    url: "/wp-content/themes/roots-master/login.php", 
    data: {emailaddress:'email', password:'password'}, 
    dataType: "text", 
    success:function(response){ 
    alert("success"); 
    } 
    }); 
}); 
}); 
</script> 

當我註釋掉$就功能的JavaScript工作正常(我測試了它警報)。然而,$ .ajax部分似乎並沒有工作。有人有任何建議嗎?

當我的代碼更改爲以下時,JavaScript似乎不起作用以及:

$('#submitbutton').click(function(){ 

    var email=document.getElementById('emailadd').value; 
    var password=document.getElementById('pass').value; 
    $.ajax({ 
    alert(password); 
    }); 
    }); 

我使用WordPress的,所以我沒有把任何鏈接的jQuery的頭部。相反,我將以下內容放入我的functions.php中,然後jquery開始工作。

wp_deregister_script('jquery'); 
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery    /1/jquery.min.js', false, '1.9.1', false); 
wp_enqueue_script('jquery'); 

更新:由於某種原因,當我在$ .ajax之後放置警報時,它可以工作!

jQuery(document).ready(function($){ 
$('#submitbutton').click(function(){ 
    var email=document.getElementById('emailadd').value; 
    var password=document.getElementById('pass').value; 
    $.ajax({ 
    dataType: "html", 
    type: "POST", 
    evalScripts: true, 
    url: "/wp-content/themes/roots-master/login.php", 
    data: {emailaddress:'email', password:'password'}, 
    dataType: "text", 
    success:function(){ 
    alert("success"); 
    } 
    }); 
    alert("testing"); 
}); 
}); 

有沒有人知道這是爲什麼?

+0

什麼不起作用?是否啓動了請求?它是否着陸?什麼是迴應?您是否考慮過使用螢火蟲進行調試? –

+0

警報未被觸發。另外,當我在代碼中(在$ .ajax代碼上面)提示警報不起作用時。 – pj409

+0

並且您是否在控制檯中有任何錯誤消息?另外,你確定你在做這個之前加載jquery嗎?很難說,因爲你不會發布太多... –

回答

1

解決了它!它應該看起來像這樣:

$('#submitbutton').click(function(j){ 
    j.preventDefault(); 

我錯過了preventDefault()... doh!