2015-04-22 131 views
1

我在为wordpress写一个插件。该插件有一个包含按钮和文本框的小部件。 该按钮有onclick事件。 当发生此事件时,我需要将文本框数据发布到php文件,使用ajax ajax代码不会返回错误,但php不会获取数据。wordpress插件中的ajax错误

这里是我的JS文件

function F() 
    { 
     var x=document.getElementById('last').value; 


     jQuery.ajax({ 
      type: "POST", 
      url: 'http://localhost/wordpress/wp-content/plugins/Hovo/Scripts/vote.php',   
      data: x, 
      success: function() { 
       alert('Sends successfully'); 
      }, 
      error: function(jqXHR, textStatus, errorThrown) { 
      alert(errorThrown); 
      } 
     }); 
    } 

这里是我的PHP文件

<?php 
    if(isset($_POST["anun"])) 
    { 
     echo $_POST['anun']; 
    } 
    else 
    { 
     echo "error"; 
    } 
?> 

请帮忙解决这个问题

+0

你确定本地主机?你在电脑上用于服务器端的东西?例如我usq麻,我的网站localhost:8888,或localhost:3000 – Legendary

回答

0

在你的PHP $_POST期待一个键/值对,你是在你的ajax中只发送一个值。 'anun'将是关键,无论存储在x是值。

既然你不发送密钥“anun”到$_POST不能返回存储在x因为你if条件失败的价值。

您应该能够通过稍微改变你的Ajax调用来纠正这一点,

function F() { 

    var x = document.getElementById('last').value; 

    jQuery.ajax({ 
     type: "POST", 
     url: 'http://localhost/wordpress/wp-content/plugins/Hovo/Scripts/vote.php',   
     data: { anun: x }, 
     success: function() { 
      alert('Sends successfully'); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
     alert(errorThrown); 
     } 
    }); 
} 

为了确保你能获得的x正确的值,请尝试使用console.log(x);只是你的AJAX调用之前,检查浏览器控制台看看它的回报。

如果它不返回正确的值或者干​​脆没有返回,请尝试更改:

var x = document.getElementById('last').value; 

要简单地说:

x = jQuery('#last').val();