2013-05-27 8 views
0

У меня есть страница, на которой пользователь может искать (все в AJAX) в базе данных и выбирать, скажем, разные типы данных на странице. Когда он выбрал их, мне нужно перенаправить пользователя на страницу «ДРУГОЕ» (все еще на моем веб-сайте), с данными POST. Новая страница, на которой пользователь придет, нуждается в данных POST, и пользователю нужно перейти на новую страницу.Javascript - перенаправление на страницу с данными POST

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

Я пытался сделать что-то вроде этого:

document.write('<form id="reviseCombi" method="post" action="otherPage.php"><input name="input1" type="hidden" value="ok" /><input type="input2" type="hidden" value="'+ mots +'" /></form>'); 
f=document.getElementById('reviseCombi'); 
if(f){ 
    f.submit(); 
} 

Но второй вход не поступает на новую страницу, когда я проверяю с тампер данных. И сначала перезагружает фактическую страницу, что тоже странно.

Есть ли лучший способ сделать это?

EDIT: Я получил ответ для входной части. Теперь страница получает два входа. Но: он по-прежнему перезагружает пустую страницу, содержащую только форму (и html, body и т. Д.), А затем перенаправляет. Любая идея, как я могу иметь это прямо?

Извините, если это не очень понятно, трудно объяснить. Я отвечу на любые комментарии, чтобы объяснить это лучше. Спасибо большое.

+1

Попробуйте найти ответ на следующий вопрос: http://stackoverflow.com/questions/9713058/sending-post-data-with-a-xmlhttprequest. ключевыми словами являются XMLHttpRequest и POST. Вы используете первый, чтобы инициировать запрос POST на веб-сервер с помощью JavaScript. – amn

+0

«Но: он по-прежнему перезагружает пустую страницу, содержащую только (и, и т. Д.), А затем перенаправляет». если вы написали несколько тегов, таких как < BODY > и т. д., теперь они исчезли из-за форматирования stackoverflow ...оставляйте места, подобные этому < BODY >, чтобы показать его, чтобы мы могли читать и помогать :) – Sharky

+0

да я просто взял <> прочь ;-) –

ответ

2

Q: «Но второй вход не поступает на новую страницу»

: Ваш второй вход не имеет имени! (типа = "input2" делают имя = "INPUT2")

Q: "И это перезагружает фактическую страницу первой, которая странно тоже."

A: Если вы используете firefox и вы эхо-данные перед тегами < DOCTYPE> и < HTML, вы получаете автоматическое обновление. если вы хотите отлаживать, эхо данных внутри < BODY>

A2: Его возможно, что странная перезарядка происходит потому, что вы делаете, что document.write формы вне < BODY> или, возможно, внутри < HEAD>. .. если тот случай, почему бы не делать этого:

HTML

<div id="myformcontainer"></div> 

JS

function CreateAFormInsideMyDivAndSubmitIt(mots) 
{ 
    var mydiv = document.getElementById('myformcontainer').innerHTML = '<form id="reviseCombi" method="post" action="otherPage.php"><input name="input1" type="hidden" value="ok" /><input name="input2" type="hidden" value="'+ mots +'" /></form>'; 
    f=document.getElementById('reviseCombi'); 
    if(f){ 
    f.submit(); 
    } 
} 

jsfiddle: http://jsfiddle.net/MDx8H/1/ (предупреждения вместо отправлений)

+0

Вау, как я пропустил первый. Я изменил название здесь специально, но я действительно не видел, что это «тип». Приветствия за это. Но для второго: я уже в . –

+0

lol первый довольно распространен, не чувствую себя плохо :) Я правильно угадал на втором? это заставило меня сходить с ума когда-то, когда я отлаживался, и в одном просмотре страницы я получал 2 вставки в моем db ... это сводило меня с ума! – Sharky

+0

Ха-ха спасибо! Ну на 2-е один, я внутри тел ... это перегружает пустую страницу, содержащую только .. –

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