ajax POST数据结果在控制台中,但显示在页面上吗?

时间:2018-07-09 17:32:46

标签: javascript php jquery ajax post

直到我发现这实际上是一个问题,才出现此问题。对于这个令人困惑的问题,我深表歉意。基本上,我正在用php收集一个mysql id,并在ajax中使用POST方法来尝试将该post id放入查询中。问题是查询有效并且数据显示在控制台上,但不在此处显示在屏幕上:

Console Results

在屏幕上,除了array(0){}我什么都看不到。由于var_dump。 几乎似乎它不是在屏幕上更新,而是在控制台上。这是我的模态代码:

<div class='modal fade' id='small' role='dialog'>
<div class='modal-dialog'>
<div class='modal-content'>
    <h3 class="fetchuserid" style='text-align: center;'>
    <?php

        $db = mysqli_connect("localhost", "root", "password", "testdb");



        $uid = $_POST['postuserid'];
        var_dump($_POST); <-- This is where you should be seeing the array(1){["postuserid"] => string(2) "10"} `10` being the id I clicked.


        $ssql = "SELECT * FROM foodid WHERE postid=$uid";
        $rresult = mysqli_query($db,$ssql);
        while($lrow = mysqli_fetch_assoc($rresult)){

            echo $lrow['countid'];
            echo '<span class="postid_count">'.$lrow['countid'].'</span>'; <-- This is where you should be seeing all of those span in the console.

        }

    ?>
    </h3>
    </div>
</div>
</div>

以下是用于访问模式并负责保存ID的定位标记:

echo '<a  href="#" data-postuserid="'.$row['id'].'" id="smallbtn" name="smallbtn" data-toggle="modal" data-target="#small"  data-modal="small">';

最后是我的ajax:

$(document).on('click','#smallbtn',function(){

        var postuserid = $(this).data('postuserid');
            $post = $(this);
            console.log($(this).data('postuserid'));

        $.ajax({

            url: 'cooking.php',
            type: 'POST',
            data: {
                'postuserid' : postuserid
            },
             success:function(data)
        {
            console.log(data);
            $post.parent().find('span.postid_count').text(data); <-- Here is what I tried to do to I guess "update" the data from the POST. No success.
             return data; <-- I read other questions and was told to do this. No success.
        },
        error:function(data)
        {
           $( document ).ajaxError(function( event, request, settings )
            {
              $("#banner-message > p").text('Sorry, we are having a trouble in this url "'+settings.url+'!"') 
            });
        }
        });
    });

注意:这都是在一页中发生的,没有刷新,因此没有数据丢失。我确实检查了我的网络标签,看是否是问题所在,并且使用200 POST方法一切正常。它还在网络以及控制台中显示正确的postuserid。

我不确定我在这里问的是正确的问题,但是欢迎任何反馈!基本上,如何显示来自控制台的ajax帖子的查询结果并将其放在页面上?

笔:codepen.io/anon/pen/djbgKj

3 个答案:

答案 0 :(得分:1)

这将为您提供帮助

document.getElementById("some_id").innerHTML = data;

请尝试一下

您可以这样做:

$post.parent().find('span.postid_count').innerHTML = data;

答案 1 :(得分:1)

听起来您没有正确定位所需的HTML元素或该元素不存在:

尝试:

alert( $post.parent().find('span.postid_count').length ); // or use console.log() if you prefer, it doesn't matter

我希望您收到1个或更多警报。如果没有,那么您需要在页面内正确定位HTML元素。

另外使用.html()代替.text(),因为.text()将从您的data字符串中剥离HTML代码。

$post.parent().find('span.postid_count').html(data);

答案 2 :(得分:0)

更改此:

$post.parent().find('span.postid_count').text(data);

为此:

$post.parent().find('span.postid_count').html(data);

让我知道它是否对您有用。