разбор приходящих данных после post запроса
вделаю такой запрос
$.post('index.php?action=cp&newcpadd=true', str, function(data) { alert(data); }); нужно из полученного html выдернуть значение из дива #dannie пробовал в php запихнуть json и тут распарсить $.post('index.php?action=cp&newcpadd=true', str, function(data) { alert(data.cpid); },"json"); но если добавляю в конце ,"json" то полсе запроса он чето ничего не делает((( даже если перед alert(data.cpid); я поставлю alert('ok'); то он мне ok не выводит. как разобрать "data" чтобы получить значение из дива dannie? или че я делаю не так когда делаю с json? |
может так надо
var d = data.find('#dannie');Что такое cpid? |
Цитата:
cpid это {cpid:123} типо json |
var d = data.find('#dannie');Если вы принимаете html для json: var json = eval("(" + data + ")"); |
это я понимаю, протсо вы меня не так поняли
если я делаю так $.post('index.php?action=cpchangerange&changerange=true&newcpadd=true', str, function(data) { var json = eval("(" + data + ")"); alert(json.cpid); },"json"); то никакого алерта я не получаю я подумал может сделать вот так $.post('index.php?action=cp&newcpadd=true', str, function(data) { вот тут разобрать data и получить значение дива #dannie }); мне подойдет любой вариант, почему с json не работает я не понимаю, раньше я так делал и работало, но меня и устроил бы второй вариант но как его сделать хз |
ответ скрипта такой {cpid:123} а если сделать так {"cpid":"123"}
|
прошу прощения просто кавычки забыл написать
а ответ от сервера такой: <div id='dannie'> {"cpid":"160"} </div> |
текст js такой
var str = $('#formzakaz').serialize(); $.post('index.php?action=cpchangerange&changerange=true&newcpadd=true', str, function(data) { var json = eval("(" + data + ")"); alert(json.cpid); },"json"); |
Это попытка комбинировать ответ серва :D
<div id='dannie'> {"cpid":"160"} </div>Выберите что то одно либо html либо json Под такой js, такой ответ: {"cpid":"160"} |
нужно чтобы в ответе было только {"cpid":"160"} ?
|
FRIE,
Да |
а у меня в ответе html в котором прописаны заголовки js скрипты боди итп.. как мне сделать чтобы он отдал читсый json или получил чисты json?
я пробовал так var str = $('#formzakaz').serialize(); $.post('index.php?action=cpchangerange&changerange=true&newcpadd=true #dannie', str, function(data) { var json = eval("(" + data + ")"); alert(json.cpid); },"json"); чтобы он взял токо содержимое дива #dannie но он всеравно отдает полный хтмл ((( |
index.php - не ваша страница? Чья-то чужая?
|
моя конечно ) просто непонимаю чето я как это сделать..
|
Ну скриптом php сформируйте нужный json-код и все, а яваскрипт приняв данные воссоздаст теги уже на стороне клиента.
Скрипт php покажте уже на форуме php, может там что посоветуют |
у меня 1 индексный файл через который подключаются остальные, поэтому от мусора избавиться будет муторно, может тогда попробовать вариант чтобы получить содержимое дива dannie? но как это сделать?
|
Слишком много спрашиваете и ничего не делаете.
Пробуйте делать $.post('index.php?action=cpchangerange&changerange=true&newcpadd=true #dannie', str, function(data) { var d = data.find('#dannie').text(); alert(d); },"html");или платите... |
пробовал так, пишет data.find is not a function
|
а так
$(data).find('#dannie').text();или так $(data).text(); |
Цитата:
$(data).find('#dannie').text(); выводит пустой алерт, хотя в ответе в фаербаге я вижу текст в диве #dannie а $(data).text(); выводит то что пришло в ответе ,вместе со скриптами |
проблема решилась так :
я завернул json в div class='jsondata' и потом разобрал строку var str = $(data).find('.jsondata').text(); json = eval("(" + str + ")"); |
Часовой пояс GMT +3, время: 04:26. |