使用AJAX表单提交以从MySQL提交和检索数据

时间:2012-06-21 21:00:57

标签: php jquery mysql ajax

基本上,我正在尝试这样做,以便当帖子提交到我的网站时,它使用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);

?>

提前感谢任何帮助 - 乔

2 个答案:

答案 0 :(得分: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;  
    });  
});

您需要在最后一个返回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;  
        };  
    });

答案 1 :(得分: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;  
        }  
    });
});
});