2013-10-15 179 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!