mr-graffity
Профессор
- Регистрация
- 29 Июл 2010
- Сообщения
- 189
- Реакции
- 43
- Автор темы
- #1
Есть скрипт на ajax который отправляет пост запрос php скрипту на выборку из sql базы данных.
В ajax скрипте форма для редактирования заполняется полученными данными.
После изменения содержимого нужно отправить данные обратно php скрипту чтоб он обновил данные в базе.
Запрос на выборку прекрасно отправляется и форма отлично заполняется но вот запрос на обновление не уходит.
Помогите не могу разобраться в чем дело.
Вот ajax скрипт
Вот скрипт на php который обрабатывает
Вот скрипт подключения к joomla базе
В ajax скрипте форма для редактирования заполняется полученными данными.
После изменения содержимого нужно отправить данные обратно php скрипту чтоб он обновил данные в базе.
Запрос на выборку прекрасно отправляется и форма отлично заполняется но вот запрос на обновление не уходит.
Помогите не могу разобраться в чем дело.
Вот ajax скрипт
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>search</title>
<link rel="stylesheet" type="text/css" href="my.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$(".search_button").click(function() {
// получаем то, что написал пользователь
var searchString = $("#search_box").val();
// формируем строку запроса
var data = 'search='+ searchString;
// если searchString не пустая
if(searchString) {
// делаем ajax запрос
$.ajax({
type: "POST",
url: "do_search.php",
data: data,
dataType: "json",
success: function(data)
{ // запустится после получения резуотатов
$("#results").show();
$("#resultID").text(data.id);
$("#resultINT").text(data.introtext);
$("#resultFUL").text(data.fulltext);
}
});
}
return false;
});
$(".edit_button").click(function() {
// получаем то, что написано в формах
var StringID = $("#resultID").val();
var StringINT = $("#resultINT").val();
var StringFUL = $("#resultFUL").val();
// формируем строку запроса
var data = 'StringID='+ StringID+'&StringINT='+StringINT+'&StringFUL='+StringFUL;
// если StringID не пустая
if(StringID) {
// делаем ajax запрос
$.ajax({
type: "POST",
url: "do_search.php",
data: data,
dataType: "json",
success: function(data)
{ // запустится после получения резуотатов
$("#results").empty();
$("#results").show();
$("#resultID").text(data.id);
$("#resultINT").text(data.introtext);
$("#resultFUL").text(data.fulltext);
}
});
}
return false;
});
});
</script>
</head>
<body>
<h3 style="text-align:center;">Попробуйте ввести фразу</h3>
<div id="container">
<div style="margin:20px auto; text-align: center;">
<form method="post" action="do_search.php">
<input type="text" name="search" id="search_box" class='search_box'/>
<input type="submit" value="Поиск" class="search_button" /><br />
</form>
</div>
<div>
<div id="searchresults">Результаты для <span class="word"></span></div>
<ul id="results" class="update">
<form id="editor" method="post" action="<? $PHP_SELF ?> " method=post enctype=multipart/form-data width="50%" height="50%"><p>ID<br/><textarea id="resultID" name="resultID" rows="1" cols="5" id="resultID" class="resultID"></textarea></p><p>Анонс<br/><textarea id="resultINT" name="resultINT" rows="8" cols="100" id="resultINT" class="resultINT"></textarea></p><p>Статья<br/><textarea id="resultFUL" name="resultFUL" rows="8" cols="100" id="resultFUL" class="resultFUL"></textarea></p><p><input type="submit" class="edit_button"/></p></form>
</ul>
</div>
</div>
</body>
</html>
Код:
<?php
//получаем данные через $_POST
if (isset($_POST['search'])) {
// подключаемся к базе
include('db.php');
$db = new db();
// никогда не доверяйте входящим данным! Фильтруйте всё!
$word = mysql_real_escape_string($_POST['search']);
// Строим запрос
$sql = "SELECT * FROM `jos_content` WHERE `fulltext` LIKE '%" . $word . "%' or `introtext` LIKE '%" . $word . "%' or 'state' LIKE '1' LIMIT 0 , 30";
// Получаем результаты
$row = $db->select_list($sql);
if(count($row)==1) {
$q = mysql_query($sql);
$res = mysql_fetch_assoc($q);
echo json_encode($res);
} else {
echo '<li>Не уникальный запрос!</li>';
}
}
if (isset($_POST['resultID'])) {
// подключаемся к базе
include('db.php');
$db1 = new db();
// никогда не доверяйте входящим данным! Фильтруйте всё!
$resultID = mysql_real_escape_string($_POST['resultID']);
$resultINT = mysql_real_escape_string($_POST['resultINT']);
$resultFUL = mysql_real_escape_string($_POST['resultFUL']);
// Строим запрос
$sql = "UPDATE `jos_content` SET `introtext` = '".$resultINT."',`fulltext` = '".$resultFUL."' WHERE `jos_content`.`id` = ".$resultID;
// Получаем результаты
$q = mysql_query($sql);
//echo $sql.'<li>Обновили!</li><br>';
$sql1 = "SELECT * FROM `jos_content` WHERE `jos_content`.`id` = ".$resultID;
$q1 = mysql_query($sql1);
$res1 = mysql_fetch_assoc($q1);
echo json_encode($res1);
}
?>
Код:
<?php
class db {
function __construct()
{
global $dbh;
if (!is_null($dbh)) return;
$dbh = mysql_pconnect('localhost', 'root', '');
mysql_select_db('stroydump');
mysql_query('SET NAMES utf8');
}
function select_list($query)
{
$q = mysql_query($query);
if (!$q) return null;
$ret = array();
while ($row = mysql_fetch_array($q, MYSQL_ASSOC)) {
array_push($ret, $row);
}
mysql_free_result($q);
return $ret;
}
}
?>