blackcarrot
Новичок
Сперва код с разъяснением:
вывожу на сранице список товаров (файл index.tpl)
файл stuff.tpl
как видите у каждого товара есть див в котором есть ссылка Удалить, по нажатию на которой я отправляю пост запрос на страницу обработки:
файл script.js
при удачном запросе обновляю див с товарами
файл stuff.php
тоесть респонсу я скармливаю отображение файла stuff.tpl
В чем собственно проблема: когда я кликаю по ссылке товар удаляется, див обновляется но перестает работать яваскрипт, не выезжает меню с кнопкой!
Аналогичная проблема только с каталогами, при нажатии на ссылку див обновляется, при нажатию на следующую - страница перезагружается и ничего не меняется.
На мой взгляд при обновлении блока, смарти перестает видить файлы яваскрипта.
Очень прошу помогите разобраться, очень расстраивает меня этот глюк.
вывожу на сранице список товаров (файл index.tpl)
PHP:
<div id="goods">
{if $latest_stuff}
{include file="stuff.tpl" }
</div>
{/if}
файл stuff.tpl
PHP:
{section name=stuff loop=$latest_stuff}
<div class="tovar">
//название товара
//цена
//....
<input id="stuff_id{$latest_stuff[stuff].id}" type="hidden" name="delete_tov" value="{$latest_stuff[stuff].id}" />
<div class="editmenu"><a href="#" class="delete-stuff">Удалить</a>
</div>
{/section}
файл script.js
PHP:
$(".delete-stuff").click(function(){
var stuff_id = $(this).parent().prev('input').val();
var sitename = $('.buy-sitename'+stuff_id).val();
var data = {
delete_tov: stuff_id,
new: 1
}
$.post(sitename+'/stuff.php',data,function(data,status){
var newHtml = data;
$('#goods').html(newHtml);
});
return false;
});
файл stuff.php
PHP:
session_start();
header('Content-Type: text/html; charset=cp1251;');
require_once("config.php");
require_once("functions.php");
require './Smarty/libs/Smarty.class.php';
$smarty = new Smarty;
$smarty->compile_check = true;
$smarty->debugging = false;
$smarty->force_compile = 1;
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
{
if(isset($_POST['delete_tov'])){
$id=htmlspecialchars($_POST['delete_tov'],ENT_QUOTES);
mysql_query("UPDATE items SET status = 'deleted' WHERE id = '$id'",$conn);
mysql_query("DELETE FROM tags WHERE id_stuff = '{$id}'",$conn);
}
}
$latest_stuff=get_latest_stuff($user->id);
$smarty->assign("latest_stuff",$latest_stuff);
$smarty->assign("sitename",$sitename);
$smarty->assign("user",$user);
$smarty->display('stuff.tpl');
тоесть респонсу я скармливаю отображение файла stuff.tpl
В чем собственно проблема: когда я кликаю по ссылке товар удаляется, див обновляется но перестает работать яваскрипт, не выезжает меню с кнопкой!
Аналогичная проблема только с каталогами, при нажатии на ссылку див обновляется, при нажатию на следующую - страница перезагружается и ничего не меняется.
На мой взгляд при обновлении блока, смарти перестает видить файлы яваскрипта.
Очень прошу помогите разобраться, очень расстраивает меня этот глюк.