我的意思是,我正在尝试将网络链接看作something.com/newpage.php?id=123...
。
我所拥有的是一个表单,以及运行此AJAX的加载JavaScript函数:
$.ajax({
type: "POST",
url: "postear.php",
data: "addcontentbox=" + addcontent,
success: function() {
$("ul#wall").prepend("<li><a href='newpage.php?id=<?php echo $rows['id']; ?>' target='_blank'>"+addcontent+"</a></li>");
$("ul#wall li:first").fadeIn();
document.postbar_add_post.addcontent.value='';
$('form#postbar_add_post input[type="submit"]').removeAttr('disabled');
}
});
这是在url上调用的PHP函数:
<?php
if(isset($_POST['addcontent']))
{
// Connection to Database
include('config.php');
// No Query Injection
$message = mysql_real_escape_string($_POST['addcontent']);
// echo
$sql = 'INSERT INTO test.wall (message) VALUES("' . $message . '")';
$result = mysql_query($sql);
$rows = mysql_fetch_array($result);
mysql_query($sql);
echo $message;
}
else
{
echo '0';
}
?>
也试图在那里放置_GET [id] ..但没有。
有任何帮助吗?
pd:dabase是:
CREATE TABLE `test`.`wall` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`message` VARCHAR( 255 ) NOT NULL
) ENG
答案 0 :(得分:1)
我很确定你需要调用mysql_insert_id而不是mysql_fetch_array。即你还没有从mysql中撤回自动增量ID(这就是假设你的墙表有一个自动增量主键......?)
答案 1 :(得分:0)
首先你需要改变这一行
success: function() {
$("ul#wall").prepend("<li><a href='newpage.php?id=<?php echo $rows['id']; ?>' target='_blank'>"+addcontent+"</a></li>");
到
success: function(data) {
$("ul#wall").prepend("<li><a href='newpage.php?id="+data+" target='_blank'>"+addcontent+"</a></li>");
并在php文件中而不是这三行
$rows = mysql_fetch_array($result);
mysql_query($sql);
echo $message;
你应该写
echo mysql_insert_id();
当然你必须将数据库中的id fild设置为首先自动增量
改变这个没有坏处
$sql = 'INSERT INTO test.wall (message) VALUES("' . $message . '")';
到
$sql = "INSERT INTO test.wall (`message`) VALUES('$message')";
我的意思是这样更容易