不知道如何将 html 输出到带有 ajax 的页面上
Do not know how to output html onto a page with ajax
我跟着一个教程视频(长度为 112 个视频),所以在编码方面我在很多方面仍然很无知;虽然我学到了一吨。
我遇到的困难正是标题所说的。在我目前正在处理的管理面板中,我(例如)将 jquery bootstrap helper class of "alert alert-success" 分配给了一个段落标签,如您所见这里:http://i1379.photobucket.com/albums/...ps44962161.png
.
它在上面的例子中工作的原因是因为在点击保存(插入和更新)时运行的 SQL 不需要 ajax.
INSERTING 和 UPDATING 时执行的代码在 config 文件夹中名为 "queries.php" 的文件中。如下(当然是错误处理部分):
case 'pages':
if (isset($_POST['submitted']) && $_POST['submitted'] == 1) {
// POST vars
$title = mysqli_real_escape_string($dbc, $_POST['title']);
$label = mysqli_real_escape_string($dbc, $_POST['label']);
$header = mysqli_real_escape_string($dbc, $_POST['header']);
$body = mysqli_real_escape_string($dbc, $_POST['body']);
if (isset($_POST['id']) AND $_POST['id'] != ''){
$action = "updated";
// UPDATE
$query = "UPDATE posts SET user = $_POST[user], slug = '$_POST[slug]', title = '$title', label = '$_POST[label]', header = '$header', body = '$body' WHERE id = $_GET[id]";
}else{
$action = "added";
// INSERT
$query = "INSERT INTO posts (type, user, slug, title, label, header, body) VALUES (1, $_POST[user], '$_POST[slug]', '$title','$label','$header','$body')";
}
$result = mysqli_query($dbc, $query);
//Error Handling
if ($result) {
$message = '<p class = "alert alert-success">Page was '.$action.'!</p>';
}else{
$message = '<p class = "alert alert-danger">Page could not be '.$action.' because: '.mysqli_error($dbc).'</p>';
$message .= '<p class = "alert alert-warning">Query: '.$query.'</p>';
}
}
if (isset($_GET['id'])) {$opened = data_post($dbc, $_GET['id']);}
break;
但是,我不知道如何在删除 post 时让 $message 变量得到回显。我正在使用 ajax 以便 post 立即从列表左侧消失。
这是Javascript:
$(".page-delete").on("click", function(){
var selected = $(this).attr("id");
var page_id = selected.split("del_").join("");
var confirmed = confirm("Are you sure you wanted to DELETE this page?");
if (confirmed == true) {
$.get("ajax/pages.php?id="+page_id);
$("#page_"+page_id).remove();
};
...这是 ajax:
include '../../config/connection.php';
$id = $_GET['id'];
$query = "DELETE FROM posts WHERE id = $id";
$result = mysqli_query($dbc, $query);
if ($result) {
echo "Page Deleted.";
} else {
"There was an error...<br>";
echo $query.'<br>';
echo mysqli_error($dbc);
}
这是我试图吐出消息的地方:
</div> <!-- END col-md-3 -->
<div class="col-md-9">
<!--FORM-->
<form role="form" action="index.php?page=pages&id=<?php echo $opened['id']; ?>" method="post">
<?php if(isset($message)) { echo $message; } ?>
<!-- INPUT FIELD for title -->
<div class="form-group">
<label for="title">Page Title</label>
<input type="text" class="form-control" value="<?php echo $opened['title'];?>" name="title" id="title" placeholder="Page's Title" />
</div>
感谢任何能提供帮助的人,我很抱歉不了解如此基础的东西。
再次感谢阅读。和平!
您需要回电 ajax 收到。
$.get("ajax/pages.php?id="+page_id, function( data ) {
$( "#result" ).html( data ); // replaces the html in div#result
$("#page_"+page_id).remove();
})
并将您的消息放在 html 标签中,例如 div
,这样我们就可以将其替换为 jquery
<div id="result"><?php if(isset($message)) { echo $message; } ?></div>
您的问题有点笼统,您可能需要阅读一些有关最佳实践的书籍。
我跟着一个教程视频(长度为 112 个视频),所以在编码方面我在很多方面仍然很无知;虽然我学到了一吨。
我遇到的困难正是标题所说的。在我目前正在处理的管理面板中,我(例如)将 jquery bootstrap helper class of "alert alert-success" 分配给了一个段落标签,如您所见这里:http://i1379.photobucket.com/albums/...ps44962161.png
.
它在上面的例子中工作的原因是因为在点击保存(插入和更新)时运行的 SQL 不需要 ajax.
INSERTING 和 UPDATING 时执行的代码在 config 文件夹中名为 "queries.php" 的文件中。如下(当然是错误处理部分):
case 'pages':
if (isset($_POST['submitted']) && $_POST['submitted'] == 1) {
// POST vars
$title = mysqli_real_escape_string($dbc, $_POST['title']);
$label = mysqli_real_escape_string($dbc, $_POST['label']);
$header = mysqli_real_escape_string($dbc, $_POST['header']);
$body = mysqli_real_escape_string($dbc, $_POST['body']);
if (isset($_POST['id']) AND $_POST['id'] != ''){
$action = "updated";
// UPDATE
$query = "UPDATE posts SET user = $_POST[user], slug = '$_POST[slug]', title = '$title', label = '$_POST[label]', header = '$header', body = '$body' WHERE id = $_GET[id]";
}else{
$action = "added";
// INSERT
$query = "INSERT INTO posts (type, user, slug, title, label, header, body) VALUES (1, $_POST[user], '$_POST[slug]', '$title','$label','$header','$body')";
}
$result = mysqli_query($dbc, $query);
//Error Handling
if ($result) {
$message = '<p class = "alert alert-success">Page was '.$action.'!</p>';
}else{
$message = '<p class = "alert alert-danger">Page could not be '.$action.' because: '.mysqli_error($dbc).'</p>';
$message .= '<p class = "alert alert-warning">Query: '.$query.'</p>';
}
}
if (isset($_GET['id'])) {$opened = data_post($dbc, $_GET['id']);}
break;
但是,我不知道如何在删除 post 时让 $message 变量得到回显。我正在使用 ajax 以便 post 立即从列表左侧消失。
这是Javascript:
$(".page-delete").on("click", function(){
var selected = $(this).attr("id");
var page_id = selected.split("del_").join("");
var confirmed = confirm("Are you sure you wanted to DELETE this page?");
if (confirmed == true) {
$.get("ajax/pages.php?id="+page_id);
$("#page_"+page_id).remove();
};
...这是 ajax:
include '../../config/connection.php';
$id = $_GET['id'];
$query = "DELETE FROM posts WHERE id = $id";
$result = mysqli_query($dbc, $query);
if ($result) {
echo "Page Deleted.";
} else {
"There was an error...<br>";
echo $query.'<br>';
echo mysqli_error($dbc);
}
这是我试图吐出消息的地方:
</div> <!-- END col-md-3 -->
<div class="col-md-9">
<!--FORM-->
<form role="form" action="index.php?page=pages&id=<?php echo $opened['id']; ?>" method="post">
<?php if(isset($message)) { echo $message; } ?>
<!-- INPUT FIELD for title -->
<div class="form-group">
<label for="title">Page Title</label>
<input type="text" class="form-control" value="<?php echo $opened['title'];?>" name="title" id="title" placeholder="Page's Title" />
</div>
感谢任何能提供帮助的人,我很抱歉不了解如此基础的东西。
再次感谢阅读。和平!
您需要回电 ajax 收到。
$.get("ajax/pages.php?id="+page_id, function( data ) {
$( "#result" ).html( data ); // replaces the html in div#result
$("#page_"+page_id).remove();
})
并将您的消息放在 html 标签中,例如 div
,这样我们就可以将其替换为 jquery
<div id="result"><?php if(isset($message)) { echo $message; } ?></div>
您的问题有点笼统,您可能需要阅读一些有关最佳实践的书籍。