Javascript 试图通过PHP打印到html页面
我正在制作一个带有save函数的自定义所见即所得编辑器,通过save函数,我运行了一些代码来获取某个div中的所有内容,将其保存到数据表或覆盖它。但现在,我正试图加载回页面 过程如下:按下save按钮,它运行一个名为save.PHP的PHP脚本,如下所示 我的问题是,我希望它加载或回显原始html页面上某个div内的内容。我该怎么做呢?基本上,我需要它像Javascript的innerHTML函数一样工作 下面是我使用的文件,至少是相关部分 test.html:Javascript 试图通过PHP打印到html页面,javascript,php,html,echo,innerhtml,Javascript,Php,Html,Echo,Innerhtml,我正在制作一个带有save函数的自定义所见即所得编辑器,通过save函数,我运行了一些代码来获取某个div中的所有内容,将其保存到数据表或覆盖它。但现在,我正试图加载回页面 过程如下:按下save按钮,它运行一个名为save.PHP的PHP脚本,如下所示 我的问题是,我希望它加载或回显原始html页面上某个div内的内容。我该怎么做呢?基本上,我需要它像Javascript的innerHTML函数一样工作 下面是我使用的文件,至少是相关部分 test.html: <form method=
<form method="post" name="blog-post" id="blog-post">
<input type="hidden" name="postID" value="1"><!--Get the post's id-->
<div class="blog-editor-bar">
<a href="#" data-command='save'
onclick="submitForm('save.php');">
<i class='fa fa-save'></i>
</a>
</div>
<div id="blog-textarea" contenteditable>
</div>
<textarea style="display:none;" id="blog-post-cont" name="post-content"></textarea>
</form>
save.php:
$conn = mysqli_connect('localhost', 'root', '', '');
if (mysqli_connect_errno()){
echo "<p>Connection Failed:".mysqli_connect_error()."</p>\n";
}
//store stuff in database
//Get Variables
$postid = $_POST['postID'] ? $_POST['postID'] : null;
$post = $_POST['post-content'] ? $_POST['post-content'] : null;
//if exists, overwrite
if($postid != null || $postid != ""){
$sqlSave = "SELECT * FROM wysiwyg.post WHERE idpost = $postid";
$rSave = mysqli_query($conn, $sqlSave) or die(mysqli_error($conn));
if(mysqli_num_rows($rSave)){
$sqlOverwrite = "INSERT INTO wysiwyg.post(post) VALUES(?) WHERE idpost = ?";
$stmt = mysqli_prepare($conn, $sqlOverwrite);
mysqli_stmt_bind_param($stmt, "sd", $post, $postid);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_close($conn);
} else {
newSave();
}
loadSave();
}
function newSave(){
$sqlNewSave = "INSERT INTO wysiwyg.post(post) VALUES(?)";
$stmt = mysqli_prepare($conn, $sqlNewSave);
mysqli_stmt_bind_param($stmt, "s", $post);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_close($conn);
}
function loadSave(){
$sqlLoad = "SELECT * FROM wysiwyg.post WHERE idpost = $postid";
$rLoad = mysqli_query($conn, $sqlLoad) or die(mysqli_error($conn));
//This is the part I'm stuck on
}
$conn=mysqli_connect('localhost','root','');
if(mysqli\u connect\u errno()){
echo“连接失败:”.mysqli\u connect\u error()。“\n”;
}
//在数据库中存储内容
//获取变量
$postid=$\u POST['postid']$_POST['postID']:空;
$post=$_post['post-content']$_POST['POST-content']:空;
//如果存在,则覆盖
如果($postid!=null | |$postid!=“”){
$sqlSave=“从wysiwyg.post中选择*,其中idpost=$postid”;
$rSave=mysqli_查询($conn,$sqlSave)或die(mysqli_错误($conn));
if(mysqli_num_行($rSave)){
$sqlOverwrite=“插入所见即所得的post(post)值(?),其中idpost=?”;
$stmt=mysqli\u prepare($conn,$sqlOverwrite);
mysqli_stmt_bind_param($stmt,“sd”,$post,$postd);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_close($conn);
}否则{
newSave();
}
loadSave();
}
函数newSave(){
$sqlNewSave=“插入所见即所得的post(post)值(?);
$stmt=mysqli\u prepare($conn,$sqlNewSave);
mysqli_stmt_bind_param($stmt,“s”,$post);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_close($conn);
}
函数loadSave(){
$sqlLoad=“从wysiwyg.post中选择*,其中idpost=$postid”;
$rLoad=mysqli_查询($conn,$sqlLoad)或die(mysqli_错误($conn));
//这是我一直坚持的部分
}
提前谢谢你们所有人帮助我!我已经坚持了至少几个小时了
编辑:在人们评论SQL注入之前,我已经考虑过了。这是我在本地主机上运行代码,然后再运行大量的反sql注入方法,我在过去已经做过了。我提供的代码只在这一点上对功能很重要
编辑#2:反注入代码已存在。我想我好像忘了提供那个信息了。我重复一遍,我在这里提供的代码只是与功能相关的代码。我已经跳过了字符串、修剪过的字符串等,但是这些代码对于让人们理解我要做的事情并不是必需的。您可以使用AJAX请求与服务器通信,发送数据并接收响应。有很多很好的教程,但自从我第一次在W3Schools网站上学习到它之后,我将向你们推荐
<script>
$(document).ready(function(){
$.ajax({ //start an AJAX call
type: 'GET', //Action: GET or POST
data: {VariableName: 'GETvalue'}, //Separate each line with a comma
url: 'Destination.php', //save.php in your case
success: function(data)){ //if values send do this
//do whatever
}
}); //end ajax request
});
</script>
您需要使用AJAX来保存文本。您的
$sqlSave
和$sqlLoad
查询也容易受到SQL注入的攻击。您应该为所有用户提供的数据使用绑定参数。您已经部分阻止了SQL注入。你应该在任何地方都这样做,晚一点做是个坏主意。谢谢你的快速反应,迈克。请检查我的编辑。我知道SQL,但目前我首先关注的是功能,所以要让它工作起来。如何从PHP文件执行Ajax,如在我的加载PHP函数中,如何调用Ajax调用将值存储在json文件中?@chris85如何在PHP文件中调用Ajax请求?我想我需要做一个javascript文件。我该如何回应呢?使用AJAX调用PHP,然后在返回事件时根据需要更新DOM。您不应该有大量反sql注入方法,将输入与查询分开。请注意,问题没有用jQuery标记。纯JS AJAX查询不是“这样生成的”。@naderbesada数据做什么?我知道数据类型和所有其他类型,但数据到底做什么呢?@Mike你真的没有帮助任何人找出问题所在。如果Jquery是一个解决方案,我很乐意使用它。我知道你是一个声誉很好的社区成员,但请停下来。@verdeletg也许我的语气走错了方向,但我的观点是,正如答案所示,这不是提出AJAX请求的唯一方法。也可以使用纯JS。
<script>
$(document).ready(function(){
$.ajax({ //start an AJAX call
type: 'GET', //Action: GET or POST
data: {VariableName: 'GETvalue'}, //Separate each line with a comma
url: 'Destination.php', //save.php in your case
success: function(data)){ //if values send do this
//do whatever
}
}); //end ajax request
});
</script>
<?php
echo $_GET['VariableName'];
?>
$.ajax({
type: 'GET',
data: {VariableName: 'GETvalue'},
dataType: 'json' // Allows Json values or you can change it to whatever you want
url: 'Destination.php',