JQuery как послать POST с переходом на страницу

На странице "А" делаю передаю данные методом POST на страницу "B"
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .javascript.geshi_code {font-family:monospace;} .javascript.geshi_code .imp {font-weight: bold; color: red;} .javascript.geshi_code .kw1 {color: #000066; font-weight: bold;} .javascript.geshi_code .kw2 {color: #003366; font-weight: bold;} .javascript.geshi_code .kw3 {color: #000066;} .javascript.geshi_code .co1 {color: #006600; font-style: italic;} .javascript.geshi_code .co2 {color: #009966; font-style: italic;} .javascript.geshi_code .coMULTI {color: #006600; font-style: italic;} .javascript.geshi_code .es0 {color: #000099; font-weight: bold;} .javascript.geshi_code .br0 {color: #009900;} .javascript.geshi_code .sy0 {color: #339933;} .javascript.geshi_code .st0 {color: #3366CC;} .javascript.geshi_code .nu0 {color: #CC0000;} .javascript.geshi_code .me1 {color: #660066;} .javascript.geshi_code span.xtra { display:block; }
$.ajax({
    type: "POST",
    url: "B.html",
       data: send_string,
       success: function(){
       }
   });


все передается, но как сделать чтобы после этого пользователя перекинуло на страницу "В", и на ней были POST данные?

П.С.
Не хочу передавать данные подстановкой к адресу страницы после B.html?moi_dannie=jkhdh273yh7843y7 и т .п.

1 ответов


и зачем тут ajax?

данные не передаются между страницами, вы работаете с сервером.. в формате запрос-ответ)
ajax нужен, к примеру когда следует обновить только часть содержимого страницы.
у вас же переход на другую..

передаете формой как писали выше и нет проблем))

конечно можете отправить и с помощью xhr используя POST, а потом в событии onSuccess сделать document .write(responseText) и будет подмена всего документа:D во всяком случае лучше 2 запросов к серверу.. но с очевидными минусами

каков завопрос, такой и ответ)


<form method="post" id="form" action="b.html">
 <!-- нужные данные в <input type=hidden> -->
</form>
<script type="text/javascript">
 $('#form').submit();
</script>

Ну я вижу два выхода.

1. Нужные данные переданные на сервер постом запомнить в сессии и потом обращаться к ним на любой странице $_SESSION['a'] = 1;

2. Если же эти данные для разового использования или с ними будет работать JS на новой странице, можно попробовать так. Передать данные постом на сервер и добавить перед выдачей в html второй странице <input type="hidden" name="a" value="1"/>


$.ajax({
   type: "POST",
   url: "B.html",
       data: send_string,
       success: function() {
           document.location = "B.html";
       }
   });, но POST-данные вы не увидите, если не сохраните их через PHP в сессии.

Передать данные в JSON формате, а там (в .php файле) поймать их через массив $_POST.

Как-то так:

$.ajax({
   type: "POST",
   url: "post.php",
       data: ({a : b}),// где a - это значение уходит $_POST['a'], b - это var b в этом яваскрипте.
       success: function() {
           $('div').load('post.php');//подгрузить содержимое страницы с переданными параметрами
       }
   });