1

contenteditable 機能を使用しています。複数のフィールドを更新しようとしていますが、2 つのフィールドを通過しようとすると、うまくいかないようで、1 つのフィールドで完全に機能します。保存ボタンをクリックしても、エラー メッセージは表示されません。

データを正しく渡していないと思いますが、これは私の知識不足が原因です。

index.php

<?php
        //get data from database.
        include("db.php");
        $sql = mysql_query("select * from datadump where id='1'");
        $row = mysql_fetch_array($sql);     ?>
<div id="wrap">
    <header><h1>Contenteditable Database driven</h1></header>

    <div id="status"></div>

    <div id="maincontent">

    <div id="editable" contentEditable="true">
<?php
        echo $row['content'];
    ?>      
    </div>  
    <div id="editablea" contentEditable="true">
    <?php
        echo $row['name'];
    ?>
    </div>
    <button id="save">Save</button>
    </div>

js/js.js

$(document).ready(function() {

    $("#save").click(function (e) {         
        var content = $('#editable').html();    
    var name = $('editablea').html();

        $.ajax({
            url: '/save.php',
            type: 'POST',
            data: {
            content: content,
            name: editablea
            },              
            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');   
                }
            }
        });   

    });

    $("#maincontent").click(function (e) {
        $("#save").show();
        e.stopPropagation();
    });

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

});

save.php

<?php
include("db.php");
$content = $_POST['content'];
$name = $_POST['editablea'];//get posted data
$content = mysql_real_escape_string($content);  //escape string 

$sql = "UPDATE datadump SET content = '$content', name = '$name' WHERE id = '1' ";

if (mysql_query($sql))
{
    echo 1;
}
 ?>
4

1 に答える 1