Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Редактирование по месту с использованием Ajax

Создайте новый файл index.php со следующим содержанием:

<head>
    <script src="ajax_framework.js"></script>
</head>

<body>
<div id="myText">Это текст, который нужно отредактировать на месте</div>
<script>
    new Ajax.InPlaceEditor($('myText'), 'javascript:saveText("myText")', {
        ajaxOptions: {method: 'get'}
    });
</script>
</body>

Блок <div id="myText"> содержит текст, который вы будете изменять. Вы также можете использовать и другие теги, текст которых будете изменять, например <span>, <h1>

ajax_framework.js:

/* XMLHTTPRequest Enable */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();

/* -------------------------- */
/*          SAVE TEXT         */
/* -------------------------- */
var nocache = 0;
var text = '';
function saveText(textId){
textId_n = encodeURI(document.getElementById('textId').value);
textIDGlobal = textId_n;
nocache = Math.random();
http.open('get', 'save_text.php?newText='+textId_n+'&nocache = '+nocache);
http.onreadystatechange = saveTextReply;
http.send(null);
}
function saveTextReply(){
if(http.readyState == 4){
var response = http.responseText;
document.getElementById(textIDGlobal).innerHTML = response;
}

Следующий блок PHP кода сохраняет переданные значения в базу данных.
save_text.php:

<!-- Include Database connections info. -->
<?php
include('config.php');

if(isset($_GET['newText'])){
    $newText= $_GET['newText'];
    $insertText_sql = 'INSERT INTO MYTABLE (newText) VALUES('. $newText .')';
    $insertText= mysql_query($insertText_sql) or die(mysql_error());
    echo $newText;
} else {
    echo 'Error! Please fill all fileds!';
}
?>

Если новое значение пустое, вы получите сообщение об ошибке, иначе значение будет занесено в базу данных.
config.php:

<?php
// Connection's Parameters
$db_host="localhost";
$db_name="database_name";
$username="database_username";
$password="database_password";
$db_con=mysql_connect($db_host,$username,$password);
$connection_string=mysql_select_db($db_name);
// Connection
mysql_connect($db_host,$username,$password);
mysql_select_db($db_name);
?>

.