Javascript 试图通过PHP打印到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=

我正在制作一个带有save函数的自定义所见即所得编辑器,通过save函数,我运行了一些代码来获取某个div中的所有内容,将其保存到数据表或覆盖它。但现在,我正试图加载回页面

过程如下:按下save按钮,它运行一个名为save.PHP的PHP脚本,如下所示

我的问题是,我希望它加载或回显原始html页面上某个div内的内容。我该怎么做呢?基本上,我需要它像Javascript的innerHTML函数一样工作

下面是我使用的文件,至少是相关部分

test.html:

<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网站上学习到它之后,我将向你们推荐


您可以使用如下编写的AJAX请求:

<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',