微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 将divs内容保存到数据库

我正在使用阿罗哈编辑并喜欢它.

我坚持将页面上不同div的数据保存到数据库.

我在http://gazpo.com/2011/09/contenteditable/找到了一个名为contentEditable的教程

它将1 div保存到数据库,但是我的网页上有多个div,我无法计算出逻辑.

如果你能提供帮助,我真的很感激?

我的index.PHP上有以下PHP / Javascript / Ajax:

 <?PHP
            //get data from database.
                include("db.PHP"); 
            ?>


<script>
    $(document).ready(function() {

        $("#save").click(function (e) {         
            var content = $('[class^="editable"]').html();  

            $.ajax({
                url: 'save.PHP',
                type: 'POST',
                data: {
                content: content
                },              
                success:function (data) {

                    if (data == '1')
                    {
                        $("#status")
                        .addClass("success")
                        .html("Data saved successfully")
                        .fadeIn('fast')
                        .delay(3000)
                        .fadeOut('slow');   
                    }
                    else
                    {
                        $("#status")
                        .addClass("error")
                        .html("An error occured, the data Could not be saved")
                        .fadeIn('fast')
                        .delay(3000)
                        .fadeOut('slow');   
                    }
                }
            });   

        });

        $('[class^="editable"]').click(function (e) {
            $("#save").show();
            e.stopPropagation();
        });

        $(document).click(function() {
            $("#save").hide();  
        });

    });

</script>

在我的index.PHP上,每个div都有一个唯一的类,例如.editable1,在div中我有以下PHP来回显数据库中的数据:

<div class="editable1">
<?PHP
        $sql = MysqL_query("select text from content where element_id='1'");
        $row = MysqL_fetch_array($sql);         
        echo $row['text'];
?>
</div>
<div class="editable2">
<?PHP
        $sql = MysqL_query("select text from content where element_id='2'");
        $row = MysqL_fetch_array($sql);         
        echo $row['text'];
?>
</div>

我的save.PHP我有

<?PHP
    include("db.PHP");
    $content = $_POST['content']; //get posted data
    $content = MysqL_real_escape_string($content);  //escape string 

    $sql = "UPDATE content SET text = '$content' WHERE element_id = '1' ";
        $sql = "UPDATE content SET text = '$content' WHERE element_id = '2' ";


    if (MysqL_query($sql))
    {
        echo 1;
    }

?>

我的db.PHP

<?PHP
    //database connection
    MysqL_connect("localhost", "root", "root") or die(MysqL_error());
    MysqL_select_db("create") or die(MysqL_error());
?>

问题是,当我在div.editable1中用Aloha编辑器更新文本时,它表示“已成功保存”,但是当我刷新页面时,div为空,数据库行也为空.

任何帮助将非常感谢:)

谢谢,
米歇尔

解决方法:

首先,您设置javascript以将div的值传递为content1和content2

var content1 = $('.editable1').html();  
var content2 = $('.editable2').html();  

            $.ajax({
                url: 'save.PHP',
                type: 'POST',
                data: {
                content1: content1, content2: content2
                },       
                success: function(data) {
                   .......       

然后在你的PHP端调整代码来处理两个输入参数.

include("db.PHP");
    $content1 = $_POST['content1']; //get posted data
    $content1 = MysqL_real_escape_string($content1);  //escape string 

    $content2 = $_POST['content2']; //get posted data
    $content2 = MysqL_real_escape_string($content2);  //escape string 


     $sql = "UPDATE content SET text = '$content1' WHERE element_id = '1' ";
     MysqL_query($sql);

        $sql = "UPDATE content SET text = '$content2' WHERE element_id = '2' ";
    if (MysqL_query($sql))
    {
        echo 1;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐