0

基本上,我试图做到这一点,以便在将帖子提交到我的网站时,它使用 AJAX 发送帖子,这样他们就不会更改页面,然后如果 AJAX 帖子成功,则检索所有帖子说来自 MySQL 的用户并将它们写入页面。

我的问题是浏览器(Chrome、IE)完全忽略了 AJAX 请求。

我的表格:

<div id="updatestatus">
                    <form action="" method="post" id="ps">
                        <textarea name="status" id="status"></textarea>
                        <input type="hidden" name="uid" id="uid" value="<?php echo $uid; ?>" />
                        <input type="submit" id="poststatus" name="poststatus" value="Share" />
                    </form>
                </div>

我的 AJAX 请求:

$(function() {  
$("#poststatus").click(function() {  
    var status = $("textarea#status").val();  

    if (status == "") {  
    return false;  
    }

    var uid = $("input#uid").val();  
    var dataString = 'status='+ status + '&uid=' + uid;  

    $.ajax({  
        type: "POST",  
        url: "updatestatus.php",  
        data: dataString,  
        success: function() {  
            $.ajax({                                      
                url: 'ajax/query.php',         
                data: "uid=<?php echo $uid; ?>",        
                dataType: 'json',                
                success: function(data) {
                    var status = data[0];              
                    var sid = data[1];          
                    $('#mainprofile').html("<div id='statuses'><p>"+status+"</p></div>);
                    return false;  
                }  
            });  
        return false;  
        });  
    });
});
});

我的 ajax/query.php 请求

<?php 

  //connect stuff

    $uid = strip_tags(stripslashes(htmlspecialchars(htmlentities(mysql_real_escape_string($_GET['uid'])))));

  $result = mysql_query("SELECT * FROM mingle_status WHERE uid = '$uid' ORDER BY timestamp DESC");          //query
  $array = mysql_fetch_row($result);                          //fetch result    
  echo json_encode($array);

?>

在此先感谢您的帮助-乔

4

2 回答 2

0

在这一段 JS 代码中

$.ajax({  
    type: "POST",  
    url: "updatestatus.php",  
    data: dataString,  
    success: function() {  
        $.ajax({                                      
            url: 'ajax/query.php',         
            data: "uid=<?php echo $uid; ?>",        
            dataType: 'json',                
            success: function(data) {
                var status = data[0];              
                var sid = data[1];          
                $('#mainprofile').html("<div id='statuses'><p>"+status+"</p></div>);
                return false;  
            }  
        });  
    return false;  
    });  
});

您需要在最后一个 return false 之后的花括号之后删除结束括号,例如...

$.ajax({  
        type: "POST",  
        url: "updatestatus.php",  
        data: dataString,  
        success: function() {  
            $.ajax({                                      
                url: 'ajax/query.php',         
                data: "uid=<?php echo $uid; ?>",        
                dataType: 'json',                
                success: function(data) {
                    var status = data[0];              
                    var sid = data[1];          
                    $('#mainprofile').html("<div id='statuses'><p>"+status+"</p></div>");
                    return false;  
                }  
            });  
        return false;  
        };  
    });
于 2012-06-21T21:37:59.857 回答
0
Try this

$(function() {  
$("#poststatus").click(function() { 
    var status = $.trim($("#status").val());  

    if (status == "") {  
    return false;  
    }

    var uid = $("#uid").val();  
    var dataString = 'status='+ status + '&uid=' + uid;  

    $.ajax({  
        type: "POST",  
        url: "updatestatus.php",  
        data: dataString,  
        success: function() {  
            $.ajax({                                      
                url: 'ajax/query.php',         
                data: "uid="+<?php echo $uid; ?>,      
                dataType: 'json',                
                success: function(data) {
                    var status = data[0];              
                    var sid = data[1];          
                    $('#mainprofile').html("<div id='statuses'><p>"+status+"</p></div>);
                    return false;  
                }  
            });  
        return false;  
        }  
    });
});
});
于 2012-06-22T07:34:47.227 回答