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;
}
?>