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 |
Данные на сервер доходят? Поставьте еще обработчик на error и complete до кучи и посмотрите что там пишется.
|
в ajax добавить error: .... и complete .... ???
Данные на сервер доходят, если допусти echo 1; напишу там, то в хроме всё это дело видно. |
Цитата:
Цитата:
|
Смотрю в хроме во вкладке network, при нажатии появляется menue.php
нажимаю на него, выводит то что вывело бы в этом файле. в ajax добавил error: function(){ alert('error') } ошибку выводит. но в чём причина не знаю |
Вот так напишите:
error: function(xhr, status, error) { alert(xhr.responseText + '|\n' + status + '|\n' +error); } И скажите что выдаст этот алерт. |
вот, синтаксическая ошибка |
Цитата:
echo $type = $_POST['type']; Это зачем? json_encode($id); Ну закодировали вы $id в json, а посылать это кто будет? |
echo $type = $_POST['type']; -> echo для проверки ставил |
я понял что провтыкал момент с echo json_encode($id);
я исправил, ошибку не выводит. но не работает $('#maters').append :( |
имею
$.each(jsondata, function(jsondatas){ $('div#maters').append( 'Имя:'+jsondatas.name + ' <button class="ok" value="'+jsondatas.id+'">OK</button>' ); }); в массиве данные есть(хром показывает). если отдельно вывожу через аллерт не в цикле alert(jsondata[0].name); всё ок. в чём проблема может быть?? |
Цитата:
$.each(jsondata, function(i, jsondatas){ $('div#maters').append('Имя:'+jsondatas.name + ' <button class="ok" value="'+jsondatas.id+'">OK</button>'); }); Потому что первым аргументом передается индекс массива. |
Странно, раньше и без него работало!!) но спасибо, всё прекрасно)
|
Часовой пояс GMT +3, время: 10:27. |