Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   ajax не работает, но не выдаёт ошибок. (https://javascript.ru/forum/jquery/46728-ajax-ne-rabotaet-no-ne-vydajot-oshibok.html)

xTODx 21.04.2014 15:06

ajax не работает, но не выдаёт ошибок.
 
Добрый день, не работает ajax функция не пойму почему.
function addlink(form, type){
			/*ajax*/
			alert(type);
			$.ajax({
	  url: '/adm/js/menue.php',
	  /* метод отправки данных */
            method: 'POST',
            /* данные, которые мы передаем в файл-обработчик */
            data: {"type" : type},
 			dataType: 'json',
	  success: function(jsondata){
		  alert(3);
		  if(jsondata !== null){
			  alert(2);
		  	if (jsondata.length > 0) {
				alert(1);
				$.each(jsondata, function(jsondata){
	 				  $('#maters').append(
						  'Имя:'+jsondata.name + '"  <button class="ok" value="'+json.id+'">OK</button>'
					  );
			
				  });
			  }
 			 }
	  }
	});
	$( "#dialog-form" ).dialog( "open" );
			return	but=form;
}

вот функция.
вот так её вызываю
<button id="cheks" onClick="addlink(this,'id')">Выбрать статью</button>

вот наш код обработчика
<?php
require_once "../../config/bdjs.php" ;
 echo $type = $_POST['type'];
class MenuJs extends Db {
		function  menujson($type) {
			 $sql = 'SELECT id, title FROM pages ORDER BY id' ;
			$res = $this->sql($sql) ;
			while ($row = mysql_fetch_assoc($res))
		{
  		  $pages[] = $row;
		}
			return $pages ;
		}
}
$js = new  MenuJs();
$id = $js->menujson($type);
$id['name']=$id['title'];
 json_encode($id);

?>

ошибок через хром не показыает. не запускается функция success

jsnb 21.04.2014 16:50

Данные на сервер доходят? Поставьте еще обработчик на error и complete до кучи и посмотрите что там пишется.

xTODx 21.04.2014 20:54

в ajax добавить error: .... и complete .... ???
Данные на сервер доходят, если допусти echo 1; напишу там, то в хроме всё это дело видно.

jsnb 22.04.2014 03:27

Цитата:

Сообщение от xTODx (Сообщение 308685)
в ajax добавить error: .... и complete .... ???

Ну раз у вас success не выполняется значит что-то с запросом не так. Если запрос не удается то в обработчике error будет информация об ошибке. Ну и complete чтобы убедиться что запрос вообще выполняется.

Цитата:

Сообщение от xTODx (Сообщение 308685)
Данные на сервер доходят, если допусти echo 1; напишу там, то в хроме всё это дело видно.

Так данные всё-таки с сервера приходят? Где вы это смотрите?

xTODx 22.04.2014 08:56

Смотрю в хроме во вкладке network, при нажатии появляется menue.php
нажимаю на него, выводит то что вывело бы в этом файле.
в ajax добавил
error: function(){
        alert('error')
    }

ошибку выводит. но в чём причина не знаю

jsnb 22.04.2014 09:38

Вот так напишите:
error: function(xhr, status, error) {
    alert(xhr.responseText + '|\n' + status + '|\n' +error);
}

И скажите что выдаст этот алерт.

xTODx 22.04.2014 09:48


вот, синтаксическая ошибка

jsnb 22.04.2014 09:55

Цитата:

Сообщение от xTODx (Сообщение 308725)

вот, синтаксическая ошибка

Ну так если вы указываете в запросе dataType 'json' то и с сервера надо данные отдавать в формате JSON. Я вот смотрю на ваш PHP скрипт и вообще не понимаю что вы пытаетесь вывести.
echo $type = $_POST['type'];

Это зачем?

json_encode($id);

Ну закодировали вы $id в json, а посылать это кто будет?

xTODx 22.04.2014 14:54

echo $type = $_POST['type']; -> echo для проверки ставил

xTODx 22.04.2014 14:56

я понял что провтыкал момент с echo json_encode($id);
я исправил, ошибку не выводит. но не работает $('#maters').append :(


Часовой пояс GMT +3, время: 17:00.