разбор приходящих данных после 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, время: 05:12. |