我有一個用戶用於評論帖子的表單。現在,這個表單的隱藏輸入是正確的,當它通過ajax發送並進入數據庫時,它會得到正確的'streamidcontent',它總是變爲最後創建的狀態ID'4076',並將其添加到頂部的頂部的飼料。 所以我想知道,我做錯了什麼。註釋ID在插入數據庫之前發生變化
streamdata_comments
1 COMMENT_ID INT(11)否無AUTO_INCREMENT
2 comment_poster INT(11)否無
3 comment_streamitem INT(11)否無
4 comment_datetime日期時間否無
FORM
<form id="mycommentform" method="POST" class="form_statusinput">
<input type="hidden" name="streamidcontent" id="streamidcontent" value="'.$streamitem_data['streamitem_id'].'">
<input type="input" name"content" id="content" placeholder="Say something" autocomplete="off">
<input type="submit" id="button" value="Feed">
</form>
COMMENT_ADD.PHP
<?php
session_start();
require"include/load.php";
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
if(isset($_POST['streamidcontent'])&isset($_POST['content'])){
$content = htmlspecialchars($_POST['content']);
$streamid = htmlspecialchars($_POST['streamidcontent']);
$content = preg_replace('/(?<!S)((http(s?):\/\/)|(www.))+([\w.1-9\&=#?\-~%;\/]+)/','<a href="http$3://$4$5">http$3://$4$5</a>', $content);
$insert = "INSERT INTO streamdata_comments(comment_poster, comment_streamitem, comment_datetime, comment_content) VALUES (".$_SESSION['id'].",'$streamid',UTC_TIMESTAMP(),'$content')";
$add_post = mysqli_query($mysqli,$insert) or die(mysqli_error($mysqli));
}
AJAX
<script>
$(document).ready(function(){
$("form#mycommentform").submit(function(event) {
event.preventDefault();
var streamidcontent = $("#streamidcontent").val();
var content = $(this).children('#content').val();
$.ajax({
type: "POST",
url: "comment_add.php",
cache: false,
dataType: "json",
data: { streamidcontent: streamidcontent, content: content},
success: function(html){
$("#containerid").html("<div class='stream_comment_holder' id='comment_holder_"+html['comment_streamitem']+"'><div id='comment_list_"+html['comment_streamitem']+"'><div class='stream_comment' id='comment_"+html['comment_id']+"'>div class='stream_comment_holder' id= style='display:;'><div class='stream_comment'><table width='100%'><tbody><tr><td valign='top' width='30px'><img class='stream_profileimage' style='border:none;padding:0px;display:inline;' border=\"0\" src=\"imgs/cropped"+html['id']+".jpg\" onerror='this.src=\"img/no_profile_img.jpeg\"' width=\"40\" height=\"40\" ></td><td valign='top' align='left'><a href='profile.php?username="+html['username']+"'>"+html['first']+" </a>"+html['comment_content']+"</td></tr></tbody></table></div></div></div></div>");
}
});
return false
});
});
</script>
和我的老AJAX WHICH INSERTED罰款。但我需要添加我喜歡的,不喜歡和刪除按鈕。所以將其更改爲上述AJAX無法正常工作。
function addcomment(streamid,content,containerid,posterid,postername,postid){
var obj = document.getElementById(containerid);
$.post("../comment_add.php", { streamid: streamid,content:content});
obj.innerHTML = obj.innerHTML + "<div class='stream_comment'><table width='100%'><tbody><tr><td valign='top' width='30px'><img style='border:none;padding:0px;height:30px;width:30px;border-radius:0px;' src='imgs/cropped"+posterid+".jpg' onerror='this.src="img/no_profile_img.jpeg";'></td><td valign='top' align='left'><a href='profile.php?username="+posterid+"'>"+postername+" </a>"+content+"</td></tr></tbody></table></div>";
}
您的密碼回聲「4076」;這是我評論的帖子的錯誤ID。我已經使用AJAX更新了原始問題。 – dave
它可能是AJAX,因爲我有我的原始片AJAX,工作正常。只有我需要使用JSON添加一些項目,所以將其更改爲上述內容。我仍然有舊的AJAX代碼。你想讓我發佈嗎? – dave
好吧,現在將輸入從隱藏改爲文本,只是爲了檢查它在那裏。 (你說這是一個問題,值得仔細檢查,這是一種視覺方式)。同時檢查你只有一個id(streamidcontent,必須是唯一的整個頁面,而不僅僅是表格) – Robbie