2014-01-30 3 views
1

У меня есть страница application.php, где json-массив эхом задан с помощью php. На клиенте я хочу получить json-массив с $ .getJSON() при нажатии кнопки при отправке формы (submitHandler). Проблема в том, что если я запускаю alert() или console.log() в $ .getJSON(), ничего не происходит (я вижу только выполнение GET в консоли).

Код:

$.getJSON('../views/application.php', function(data) { 
    alert('alert1'); 
    if(data) { 
     document.write(data.resp); 
     alert('alert2'); 
    } 
    else { 
     alert('error'); 
    } 
}); 

GET http://localhost/app/views/application.php 
+0

Может быть, на '$ _SESSION', временный файл, базу данных? –

+0

Точка использования переменных сеанса заключается в том, что они не видны стороне клиента? – Erik

+0

Я не думаю, что вы используете ajax так, как вы должны быть? Если вы выполняете свой первый «пост», а php генерирует результат, вам необходимо получить «эхо» PHP, чтобы его можно было читать как ответ ajax, тогда вы можете использовать это значение во втором запросе ajax. Разве это не так, как вы это делаете? – niaccurshi

ответ

1

вы можете использовать темп уаг в скрипте и хранить данные в этой переменной.

 var x;

<script type="text/javascript"> 
     x='<?php echo $comparisonResult; ?>'; 
    </script> 
0

Я думаю, что лучший способ вернуть необходимые данные сервера в ответ на первый запрос пост, так же, как это:

$.post("/first.php", function(serverData) { 
    var param = serverData.something; 
    ... 
    $.post("/second.php", param, function(data) { 
     ... 
    }); 
    }); 

Если вы используете два запроса на двух разных страницах, вы можете магазин serverData в localStorage.

Edit после уточнения:

Если вам нужно получить данные до АЯКСА поста при нажатии на кнопке, вы можете сделать так:

$("#second-button").click(function() { 
    $.getJSON("/data.php", function (serverData) { 
     var param = serverData.something; 
     $.post("/second.php", param, function(data) { 
     ... 
     }); 
    } 
}); 

Edit 2

По какой-то причине (неправильный URL-адрес, неверный json и т. Д.) Ваш $ .getJSON терпит неудачу.

Попробуйте это для отладки:

$.getJSON("/data.php", function (serverData) { 
    console.log(serverData); 
}).fail(function(j, t, e) { 
    console.error(e); 
}); 
+0

Теперь я вижу массив json на моей странице, который повторяется в php-скрипте. Я попытался получить данные json с помощью $ .getJSON(), но ничего не случилось. Вы знаете, что я делаю неправильно? – Erik

+0

Что вы имеете в виду, ничего не произошло, вы получили ошибку или serverData пуст? Трудно дать вам соответствующие рекомендации, не видя полного кода. Не могли бы вы изменить свой вопрос и добавить то, что вы пробовали? –

+0

Отредактированный вопрос. – Erik

Смежные вопросы