Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Обновление без перезагрузки ajax, обновить без перезагрузки
Astin  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 25 дней
Карма: 7




Приветствую Форумчане!

Начну из далека...

На сайте есть вывод заявок, по истечении к примеру 14 дней заявка не
показывается на сайте. Я через cron подключаю обработчик который
ставит в БД поле активная заявка 0 если заявка старше 14 дней

Теперь, в личном кабинете сделал вывод заявок юсера и ему показывается
активна заявка или нет. Если она не активна, то стоит предложение активировать
ее по нажатию на ссылку возле заявки

По нажатию на ссылку в БД в таблице заявок обновляется поля дата и активная заявка
Дата ставится сегодняшняя а в активная ставится 1 и она начинает показываться
снова на сайте

Так вот, к этой ссылке "активировать" я прикрутил ajax

Все отлично работает и обновляет именно ту заявку по которой кликнули

Вопрос у меня вот в чем: Как обновить данные на странице или саму страницу
без перезагрузки


В коде скрипта я пока поставил
setTimeout('location.replace("./mybid")', 3000);


Но страница то перезагружается, а как сделать без перезагрузки?

Вот сам код
$(document).ready(function()
{
$("body").on('click', '.actv', function(e) {

e.preventDefault();
var clickedID = this.id.split("-");
var NumberID = clickedID[1];
var data = 'Activat='+NumberID;
$.ajax({
type: "POST",
url: '../modules/ofice/handler.php',
cache: false,
dataType: 'json',
data:data,

success: function (data)
{
$("#oks").html(data.response).fadeIn(100);
if(data.success)
{
setTimeout('location.replace("./mybid")', 3000);
}
}
,

error: function (data) {
alert('Что-то пошло не так... Попробуйте еще раз');
},
});
return false;
});
});


PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 12 дней
Карма: 21




А в ответе от ajax содержится та информация которую нужно обновить? Может просто тогда обновить какой то элемент на страничке, зачем всю страницу грузить? Или создать его если нет такого на странице?


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 25 дней
Карма: 7




Цитата (arbuzmaster @ 15.05.2016 - 18:52)
А в ответе от ajax содержится та информация которую нужно обновить? Может просто тогда обновить какой то элемент на страничке, зачем всю страницу грузить?

В ответе содержится сообщение типа "Заявка обновлена" и это сообщение
показывается.
Я понимаю что лучше обновить какой то блок.

Внимательно прочти мой вопрос, я не знаю как это сделать
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 12 дней
Карма: 21




Ну так, запихни в ответ новую информацию, которую нужно вставить, либо опять вызывай ajax из этой же функции вместо перезагрузки. Без данных ни как обновить не получится. Я бы в ответ запихнул, что бы лишний раз не вызывать ajax.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 25 дней
Карма: 7




Как это сделать нифига не соображу

Если не вызывать опять ajax это что тогда получается?

Скрыть поле и потом опять показать что ли так?

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 12 дней
Карма: 21




если - $("#oks").html(data.response).fadeIn(100); очень нужно то тогда надо делать еще один ajax запрос в ответ на который будет полностью формироваться новый список заявок в html виде и затем его вставлять на страницу, если не очень нужен то его можно сделать так $("#oks").html("все ок сейчас список обновиться").fadeIn(100); а все прописать в url: '../modules/ofice/handler.php', и сделать обычный ajax запрос

$.ajax( { type: "GET", url: ../modules/ofice/handler.php"l, data:{'location':'location_name'} , success: function(msg)
{
$("#new_scene_create").html(msg);
}

}
);

а в handler.php например такая фигня


<?php
include('../../my_sql_connect.php');
// тут ваш код активации
if (activation==OK)
{
?>
<script>
$("#oks").html("все ок сейчас список обновиться").fadeIn(100);
</
script>
<?php
}
?>


тут ваш html
<select style="text-align:center" onchange="javascript:document.getElementById('new-scene-name').value=this.value;show_scene_info(this.val ue);" name="name_of_scene[]" >
<
option selected disabled>Выбрать сценарии</option>
<
option value="">Новая сцена</option>
<?php
$scenes_qr = mysqli_query($link,"SELECT DISTINCT(`name_of_scene`) FROM `scenes` WHERE 1 ORDER BY `location`,`name_of_scene` ASC");
if(!mysqli_num_rows($scenes_qr))
{
echo ' <option >Нет сценариев</option>';
}
else
{
while ( $scenes_array = mysqli_fetch_assoc($scenes_qr) )
{
echo ' <option value="'.$scenes_array['name_of_scene'].'">'.$scenes_array['name_of_scene'].'</option>';
}
}

?>


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 25 дней
Карма: 7




arbuzmaster Спасибо за предложение

Вообще файл handler.php это чисто обработчик личного кабинета, то есть
что нужно удалить или что то добавить или что то изменить

Сами заявки подгружаются из файла main_zv.php

Он выглядел примерно так
<?php 
/**
* Вывод заявок Юсера "Личный кабинет"
*/
////////////////////////////////////////////////////////////

// Генерация страницы ошибки при доступе вне системы
if(!defined('KEY'))
{
header('HTTP/1.1 404 Not Found');
exit(file_get_contents(HOST.'meseng/notfound.html'));
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

// Получаем данные из БД

$res = mysqlQuery("SELECT *
FROM `pr`

LEFT JOIN `city` ON `pr`.`city_id` = `city`.`city_id`
LEFT JOIN `status` ON `pr`.`status_id` = `status`.`status_id`
WHERE `user_id` = '"
.$_SESSION['user_data']['user_id']."'
ORDER BY `pr`.`date` DESC"
);

if (mysql_num_rows($res) > 0)
{
while ($result = mysql_fetch_assoc($res))
{

switch($result['stats'])
{
case 'Автоломбард': $cr = "а"; $color = "color:#ea7500;"; break;
case 'Ломбард' : $cr = "а"; $color = "color:#0000ea;"; break;
case 'МКО' : $cr = ""; $color = "color:#009330;"; break;
case 'Банк' : $cr = "а"; $color = "color:#cc0000;"; break;
case 'Другое' : $cr = ""; $color = "color:#003d79;"; break;
}

if ($result['activzv'] == 1)
{
$statuszv = '<span style="color:#009330;">&rarr; Активна</span>';
} else {
$statuszv = '<span style="color:#ff0000;">&rarr; Заявка НЕ активна</span><br/>'.
'<a '.REL.' class="actv" id="act-'.$result['id'].'"href="">'.
'    Активировать</a>';
}

$danye .= "<div class=\"myszv\" id=\"item_".(int)$result['id']."\"><table>";

$danye .= "<tr><td class=\"statzv\">СТАТУС ЗАЯВКИ:</td>\n";
$danye .= "<td class=\"statzv2\">".$statuszv."</td></tr>\n";

$danye .= "<tr><td class=\"zvdl\">Заявка для:</td>\n";
$danye .= "<td class=\"zvdl2\"><span style=\"".$color."\">".html($result['stats']).$cr."</td></tr>\n";

$danye .= "<tr><td class=\"datzv\"><b>Дата заявки:</b>".forDate($result['date'])."</td>\n";
$danye .= "<td class=\"datzv2\"><b>Город:</b> ".html($result['cit'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">ФИО:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['fio'])."</td></tr>\n";


$danye .= "<tr><td class=\"zvus\">Тип занятости:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['zanyt'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Предмет залога:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['zalog'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Желаемая сумма кредита:</td>\n";
$danye .= "<td class=\"zvus2\">".(int)$result['sums']." тг.</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Желаемый срок займа:</td>\n";
$danye .= "<td class=\"zvus2\">".(int)$result['srok']." мес.</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Кредитная история:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['history'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Телефон:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['tel'])."</td></tr>\n";

$danye .= "<tr>";
$danye .= "<td class=\"zvlink\"><a ".REL." href=\"\">Редактировать</a></td>\n";
$danye .= "<td class=\"zvlink2\"><a ".REL." class=\"delete\" id=\"del-".$result['id']."\" href=\"#\">".
"Удалить</a></td></tr>\n";

$danye .= "</table></div><br>\n";
}
}
else {

$danye = "<br/><div class=\"zvuvidom\">У Вас нет заявок на кредит, список пуст.<br/>".
"<br/><a href=\"".HOST."zayvka.html\">Добавить Онлайн заявку на кредит</a></div>";
}


Выводил в шаблоне я вот таким образом
<?=$danye?>


Ну и собственно тот ajax который я указал выше


Теперь переделал пока так:

Сами заявки я теперь подгружаю через ajax вот так
var inProcess = false;
function show() {
if (inProcess) return;
inProcess = true;
$.ajax({
url: "../modules/ofice/main_zv.php",
cache: false,
dataType: 'json',
success: function(data){
inProcess = false;
$("#respond").html(data);
}
}
);
}
$(document).ready(function(){
show();
setInterval(function() {
show();
},5000);
});


А сам файл вывода заявок main_zv.php изменен вот так
<?php 
/**
* Вывод заявок Юсера "Личный кабинет"
*/
////////////////////////////////////////////////////////////

session_start();

define('KEY', true);
/////////////////////////////////////////////////////////////////////////////
// Устанавливаем соединение с сервером MySQL
include_once $_SERVER['DOCUMENT_ROOT'].'/connects/config.php';

// Подключаем файл функций MySQL
include_once ROOT.'connects/mysql.php';

// Подключаем языковой файл
include_once ROOT.'language/'.LANG.'.php';

// Получаем файл переменных
include_once ROOT.'libs/variables.php';

// Подключаем файл общих функций
include_once ROOT.'libs/default.php';
/////////////////////////////////////////////////////////////////////////////
// Получаем данные из БД

$res = mysqlQuery("SELECT *
FROM `pr`

LEFT JOIN `city` ON `pr`.`city_id` = `city`.`city_id`
LEFT JOIN `status` ON `pr`.`status_id` = `status`.`status_id`
WHERE `user_id` = '"
.$_SESSION['user_data']['user_id']."'
ORDER BY `pr`.`date` DESC"
);

if (mysql_num_rows($res) > 0)
{
while ($result = mysql_fetch_assoc($res))
{

switch($result['stats'])
{
case 'Автоломбард': $cr = "а"; $color = "color:#ea7500;"; break;
case 'Ломбард' : $cr = "а"; $color = "color:#0000ea;"; break;
case 'МКО' : $cr = ""; $color = "color:#009330;"; break;
case 'Банк' : $cr = "а"; $color = "color:#cc0000;"; break;
case 'Другое' : $cr = ""; $color = "color:#003d79;"; break;
}

if ($result['activzv'] == 1)
{
$statuszv = '<span style="color:#009330;">&rarr; Активна</span>';
} else {
$statuszv = '<span style="color:#ff0000;">&rarr; Заявка НЕ активна</span><br/>'.
'<a '.REL.' class="actv" id="act-'.$result['id'].'"href="">'.
'    Активировать</a>';
}

$danye .= "<div class=\"myszv\" id=\"item_".(int)$result['id']."\"><table>";

$danye .= "<tr><td class=\"statzv\">СТАТУС ЗАЯВКИ:</td>\n";
$danye .= "<td class=\"statzv2\" id=\"responds\">".$statuszv."</td></tr>\n";

$danye .= "<tr><td class=\"zvdl\">Заявка для:</td>\n";
$danye .= "<td class=\"zvdl2\"><span style=\"".$color."\">".html($result['stats']).$cr."</td></tr>\n";

$danye .= "<tr><td class=\"datzv\"><b>Дата заявки:</b>".forDate($result['date'])."</td>\n";
$danye .= "<td class=\"datzv2\"><b>Город:</b> ".html($result['cit'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">ФИО:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['fio'])."</td></tr>\n";


$danye .= "<tr><td class=\"zvus\">Тип занятости:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['zanyt'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Предмет залога:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['zalog'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Желаемая сумма кредита:</td>\n";
$danye .= "<td class=\"zvus2\">".(int)$result['sums']." тг.</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Желаемый срок займа:</td>\n";
$danye .= "<td class=\"zvus2\">".(int)$result['srok']." мес.</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Кредитная история:</td>\n";
$danye .= "<td class=\"zvus2\">".html($result['history'])."</td></tr>\n";

$danye .= "<tr><td class=\"zvus\">Телефон:</td>\n";
$danye .= "<td class=\"zvus2\">".(int)$result['tel']."</td></tr>\n";

$danye .= "<tr>";
$danye .= "<td class=\"zvlink\"><a ".REL." href=\"\">Редактировать</a></td>\n";
$danye .= "<td class=\"zvlink2\"><a ".REL." class=\"delete\" id=\"del-".$result['id']."\" href=\"#\">".
"Удалить</a></td></tr>\n";

$danye .= "</table></div><br>\n";
}
echo json_encode($danye);

} else {

$danye = "<br/><div class=\"zvuvidom\">У Вас нет заявок на кредит, список пуст.<br/>".
"<br/><a href=\"".HOST."zayvka.html\">Добавить Онлайн заявку на кредит</a></div>";
echo json_encode($danye);
}

////////////////////////////////////////////////////////////////////////

session_write_close();

exit();


Ну и плюс еще вон тот ajax который писал в самом начале

Короче я так понял, что с моими причудами по любому нужно два ajaxa

Теперь юсер получает сообщение и сразу же обновляется блок с заявками

Пока ничего другого не придумал

_
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 25 дней
Карма: 7




arbuzmaster

Если тебе интересно взглянуть можешь зайти Вот Сюда
Это тестовый мой сайт, можешь зарегаться и подобавлять и поудалять заявки

Как раз посмотришь как работает сейчас ajax
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 12 дней
Карма: 21




хорошо, как нибудь зайду посмотрю! wink.gif


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса