Показать сообщение отдельно
  #1 (permalink)  
Старый 12.11.2010, 17:09
Новичок на форуме
Отправить личное сообщение для Zizilk Посмотреть профиль Найти все сообщения от Zizilk
 
Регистрация: 12.11.2010
Сообщений: 1

Потеря функции после вставки ajax от jquery
Мой профиль далеко не javascript но сейчас понадобилось написать код, который бы вызывал через ajax php скрипт, который бы переименовывал определённый блок в базе данных.

использую фрейворк jquery

На вход функции подаётся id объекта у которого берётся его value (объект - текстовое поле). После этого должен происходить запрос через ajax к моему второму скрипту, который после переименования возвращает цифровой код, по которому можно было бы определить как выполнился скрипт(для дебага).

Код вот такой
function rename(obj)
{
	var val=obj.value
	function onLoaded(data) {
		var ch=data[0]
		if (ch.id==1)
		{alert("выполнено удачно")}
		if (ch.id==2)
		{alert("Не получено новое имя")}
		if (ch.id==3)
		{alert("не получен айди")}
		if (ch.id==4)
		{alert("ничего не получено")}
		
	}
	function onLoadError(error) {
		var msg = "Ошибка "+error.errcode
		if (error.message) msg = msg + ' :'+error.message
		alert(msg)
	}
	function onAjaxError(xhr, status){
	var errinfo = { errcode: status }
	if (xhr.status != 200) {
		errinfo.message = xhr.statusText
	} else {
		errinfo.message = 'Некорректные данные с сервера'
	}
	onLoadError(errinfo)
	}
	$.ajax({
		url: "rename.php",
		data: "id="+obj+"&name="val,
		dataType: "json",
		error: onAjaxError,
		cache: false
	})
}


функция rename должна вызываться кнопкой, но этого не происходит.
Если заменить вызов ajax на какой-нибудь алерт, то всё нормально.

По дебагеру Google Chrome пишет:" Uncaught ReferenceError: rename is not defined"

Саму структуру взял из другого скрипта и изменил только получаемые данные и функцию обработки получаемой информации.

Последний раз редактировалось Zizilk, 12.11.2010 в 17:12.
Ответить с цитированием