PHP没有收到Ajax帖子

时间:2015-01-26 15:17:59

标签: javascript php jquery html ajax

我对php和ajax相当新。我试图将一个变量从jquery传递到一个在模态窗口中加载的php页面。

我有php返回一堆用户的表信息。在每个用户名旁边,我有一个编辑按钮。我有jquery抓取该按钮的data-id参数。

$(document).ready(function() {
$('.editButton').click(function(e){
e.preventDefault();
    var getid = $(this).data('id');

现在我有一个php表单脚本,我想在模式窗口中加载"编辑"单击按钮。唯一的方法是使打开模态窗口的按钮成为一个标签,并使用href来调用php脚本。我想传递变量" getid"到PHP脚本将使用该值对数据库运行查询以查找被单击的用户(data-id参数由另一个返回该用户的id的php脚本生成)。我尝试了很多方法将ajax信息发送到外部php脚本,但无论我做什么,都无法让它工作。这是我的ajax请求:

        $.ajax ({
        url: '/extschedule.php',
        data: {getid : getid},
        type: 'POST',
        success: function(data) {
        alert('success');
        }           
}).error(function() {
Alert('Error');

以下是extschedule.php上的php代码:

$connection = mysqli_connect(stuff);

            $idVar = $_POST['getid'];

            $sqledit = "SELECT * from database WHERE id = (".$idVar.")";
            $result = $connection->query($sqledit);


            while($row = $result->fetch_array(MYSQLI_ASSOC)){
                $name = $row['name'];
                $id = $row['id'];
                $team = $row['team'];
                $language = $row['language'];
                $dedicatedHotel = $row['ded_hotel'];
                $satStart = $row['Sat_start_time'];
                $satEnd = $row['Sat_end_time'];..............yadda yadda

我尝试使用if(isset($ _ POST [' getid'])))但这会导致php方面出现大量问题。我已经搜索了一段时间,但仍然无法得到任何解决方案。有人可以帮我弄这个吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

查询成功时,我看不到您回显数据。你可以再试一次:echo“bla bla bla”;在文件php。

答案 1 :(得分:0)

我在PHP版本之间多次出现过一些问题。我以为自己疯了,这篇帖子Sending JSON to PHP using ajax解释了一些事情。

  1. 在我的exp中。将$ .ajax消息发布到PHP,评估$ _POST,这需要您使用JSON.stringify。在这种情况下,我通常会设置dataType ='text',然后开始工作。但上述帖子实际上声称你不必这样做。但我已经多次来回切换,直到我能解决它。 (我甚至遇到过双重逃逸的情况。我记得PHP 5.2.8中的错误)。

  2. 您可以切换到dataType ='json',但在PHP端使用file_get_contents('php:// input')。这将接受application / json(内容类型)的原始帖子。

    $.ajax({
        type: "POST",
        url: 'yourserviceorscript.php',
        contentType: 'application/json; charset=utf-8', // (optional) text/plain; charset=utf-8
        dataType: 'json', // or text
        async: true, // or false
        data: JSON.stringify(data_obj), // obj gets urlencoded
        cache: false,
        success: function(obj) {},
        error: function(xhr, desc, exeptionobj){}
    });
    
  3. 我注意到如果你没有正确设置contentType,它会使用默认的'application / x-www-form-urlencoded; charset = UTF-8'。

    尽管如此,无论我在人们看到人们在示例中使用了什么 - 当他们将原始对象与数据放在一起时:JSON.stringify(data_object),我无法让它工作。 PHP方面声明没有stringify的原始帖子看起来像“data%5Baction%5D = Server_Checkup”,并且没有解决。除非你进行字符串化,否则它会被编码。 另请参阅 - How can I use JQuery to post JSON data?

    关于这个主题有很多帖子。