0

Ajaxでコメントコンテンツを挿入しようとしています。しかし、comment_add.phpページで問題が発生していると思います。誰かが私を探してくれるかどうか疑問に思いました。

ファイアバグをチェックインしたので、streamidの取得は機能しているようですが、コンテンツが表示されません。ですから、自分には見えないものを見逃したのかどうかはわかりませんが、他の誰かが見つけることができるかもしれません。または、comment_addページを正しく記述していない可能性があります。

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;
    }
4

2 に答える 2

1

変化する

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

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

その関数にはコンテンツが存在しないため

あなたのリンクは ではありませ<a>

EDIT 2反対側からデータを追加したかったので、ここにコンテンツを取得するために使用できる小さなハックがあります

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

これが可能になるのは、コンストラクターがオブジェクトをループしてこれに設定するためです

于 2012-08-08T14:52:05.903 に答える
0

入力フィールドの「コンテンツ」マークアップに値タイプ属性がありません。タイプはデフォルトでテキストになるため重要ではありませんが、常に明示的に指定することをお勧めします。

<input name="content" type="text" value="" id="content" placeholder="Comment.." autocomplete="off" />
于 2012-08-08T15:38:14.287 に答える