php
  • javascript
  • jquery
  • html
  • ajax
  • 2012-08-08 67 views 0 likes 
    0

    我试图用Ajax插入我的评论内容。但我相信我在comment_add.php页面遇到问题,并想知道是否有人可以为我寻找。用Ajax插入评论内容

    获得streamid似乎工作,因为我在萤火虫检查,但它没有显示内容。所以我不知道我是否可能错过了一些我看不到的东西,但其他人可能会找到。或者,也许我只是没有正确书写comment_add页面。

    FORM

    echo "<form id='addcomment' method='POST' class='form_statusinput'> 
    <input type='hidden' name='posterid' id='posterid' value='".$user1_id."'> 
    <input type='hidden' name='streamid' id='streamid' value='".$streamitem_data['streamitem_id']."'> 
    <input name='content' id='content' placeholder='Comment..' autocomplete='off'> 
    <input type='submit' id='button' value='Feed'> 
    </form>"; 
    

    AJAX

    <script> 
    $(document).ready(function(){ 
    $("form#addcomment").submit(function(event) { 
    event.preventDefault(); 
    var content = $("#content").val(); 
    var streamid = $("#streamid").val(); 
    
    $.ajax({ 
    type: "POST", 
    url: "comment_add.php", 
    dataType: "json", 
    data: {content:content,streamid:streamid}, 
    success: function(response){ 
    $("#commentaddid").prepend(""+content+""); 
    } 
    }); 
    }); 
    }); 
    </script> 
    

    COMMENT_ADD.PHP

    <?php 
    session_start(); 
    require"include/load.php"; 
    $user1_id=$_SESSION['id']; 
    if(isset($_POST['streamid'])&isset($_POST['content'])){ 
    if($_POST['content']){ 
    rawfeeds_user_core::add_comment($_POST['streamid'],$_POST['content']); 
    } 
    } 
    ?> 
    

    功能

    public function add_comment($streamid,$content){ 
          $content = mysql_real_escape_string($content); 
          $content = strip_tags($content); 
    
          $content = preg_replace('/(?<!S)((http(s?):\/\/)|(www.))+([\w.1-9\&=#?\-~%;\/]+)/','<a href="http$3://$4$5">http$3://$4$5</a>', $content); 
    
          if(strlen($content)>0){ 
          $insert = "INSERT INTO streamdata_comments(comment_poster, comment_streamitem, comment_datetime, comment_content) VALUES (".$_SESSION['id'].",$streamid,UTC_TIMESTAMP(),'$content')"; 
             echo $insert; 
    
          $add_post = mysql_query($insert) or die(mysql_error()); 
          } 
          return; 
        } 
    

    回答

    1

    变化

    success: function(response){ 
    $("#commentaddid").prepend(""+content+""); 
    } 
    

    success: function(response){ 
    $("#commentaddid").prepend(""+response+""); 
    } 
    

    ,因为内容没有在该函数存在

    你的链接不会<a>

    EDIT 2 因为你想要d从这里对方添加数据是一个小黑客,你可以用它来获取内容

    $.ajax({ 
    type: "POST", 
    url: "comment_add.php", 
    dataType: "json", 
    _content:content, 
    data: {content:content,streamid:streamid}, 
    success: function(response){ 
        $("#commentaddid").prepend(""+this._content+""); 
    } 
    }); 
    

    这是可能的,因为通过对象的构造循环,并将其设置为这个

    +0

    实际上,只有在您调用数据时才会使用响应。我可以使用VAR内容,因为它已经作为内容添加到数据库中。 您的解决方案尚未解决我的问题。 – dave 2012-08-08 14:57:09

    +1

    @dave检查编辑 – EaterOfCode 2012-08-08 16:07:57

    +1

    奇妙的是,那个伎俩。 Thankyou @EaterOfCorpses。它现在有效。 什么是构造函数循环?为什么我必须这样做? – dave 2012-08-08 22:08:36

    0

    你输入字段“内容“标记缺失类型属性。类型不重要,因为它默认为文本,但总是明确指定更好。

    <input name="content" type="text" value="" id="content" placeholder="Comment.." autocomplete="off" /> 
    
    相关问题