save divs content to database
ajax, jquery, php
Solution
First you setup you javascript to pass the values of both div`s as content1 and content2
var content1 = $('.editable1').html();
var content2 = $('.editable2').html();
$.ajax({
url: 'save.php',
type: 'POST',
data: {
content1: content1, content2: content2
},
success: function(data) {
.......
Then on your php side you adjust the code to handle both input parameters.
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;
}
Problem
I am using Aloha Editor and loving it. I am stuck with saving data from different divs on the page to database. I found a tutorial called contentEditable at: http://gazpo.com/2011/09/contenteditable/ It saves 1 div to database, however I have multiple divs on my web page and I can't work out the logics. I would really appreciate if you could help? I have the following php/Javascript/Ajax on my index.php: ``` <?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> ``` On my index.php, each divs with a unique class, for instance .editable1 and inside the div I have the following PHP to echo the data from database: ``` <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> ``` My save.php I have: ``` <?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; } ?> ``` My db.php: ``` <?php //database connection mysql_connect("localhost", "root", "root") or die(mysql_error()); mysql_select_db("create") or die(mysql_error()); ?> ``` The issue is that when I update text with Aloha editor in the div.editable1 it says "saved successfully" but when I refresh the page the divs are empty and database rows are also empty. Any help would be very much appreciated :) Thanks, Michel