我对jQuery UI对话框有疑问,并显示数据库中的动态内容。在这里,我有一个使用php和mysql生成博客帖子的表,在该表中,有一列可以查看属于每篇博文的内容。
这个链接是这样的 -
$html .= " <td align='center'>\n";
$html .= " <a href='#' id='blog-$blog_id' class='view' >\n";
$html .= " <span class='icon-small ico-view-blog' title='View This Blog Post'></span>\n";
$html .= " </a>\n";
$html .= " </td>\n";
点击上面的链接我需要弹出一个jQuery对话框来显示所有博客内容。例如:博客标题,作者,图像,博客等。
我尝试使用jQuery并使用单独的php脚本来获取这样的博客内容。但是我没想到会弹出对话框。
这是我用于对话的jQuery:
$( "#dialog-view-blog" ).dialog({
autoOpen: false,
height: 450,
width: 650,
modal: true,
buttons: {
Cancel: function() {
$( this ).dialog( "close" );
}
},
position: {
my: "center top",
at: "center top",
of: "#content"
}
});
这是我如何从php文件发送数据的ajax请求来更新对话框中的内容 -
$( "a.view" ).click(function(e) {
e.preventDefault();
var clickblogID = this.id.split('-'); //Split string
var DbNumberID = clickedID[1]; //and get number from array
var blogId = 'blog_id='+ DbNumberID; //build a post data structure
$.ajax({
url: 'update_blog.php',
type: 'POST',
data: blogId,
success: function(data){
//alert(data);
//construct the data however, update the HTML of the popup div
//$('#dialog-view-blog').html(data);
$('#dialog-view-blog').dialog('open');
}
});
});
我的代码来自update_blog.php页面
if (isset($_POST['blog_id'])) {
//blog_id
$blogId = $_POST['blog_id'];
// If there is no any blog to this user display a string.
$q = "SELECT * FROM userblogs WHERE blog_id = ?";
// Prepare the statement:
$stmt = mysqli_prepare($dbc, $q);
// Bind the variables:
mysqli_stmt_bind_param($stmt, 'i', $blogId);
// Execute the query:
mysqli_stmt_execute($stmt);
//store result
mysqli_stmt_store_result($stmt);
// Get the number of rows returned:
$rows = mysqli_stmt_num_rows ($stmt);
if ( $rows == 1 ) {
$viewBlog = "<div id='dialog-view-blog' title='View Blogs'>\n";
$viewBlog .= " <h2>$blog_title</h2>\n";
$viewBlog .= " <p>$blog_author | $blog_added_date</p>\n";
$viewBlog .= " <p>";
$viewBlog .= " <img src='".UPLOAD_DIR.$userName."/".$blog_image."' alt='Image for Blog Title' />";
$viewBlog .= " $blog</p>";
$viewBlog .= "</div>\n";
echo $viewBlog;
}
有人能指出我哪里出错了吗?非常感谢任何评论。
谢谢。