2012-02-12 2 views
0

У меня есть форму. Эта форма будет отправлять данные на две разные страницы. После отправки данных на hidd.php я перенаправляю пользователя на index.php. В то же время после отправки данных до hidd.php данные будут отправлены в ns.php. Я не хочу ждать выхода с обеих страниц, просто быстро перенаправляю пользователя после отправки данных на hidd.php. Так вот в чем вопрос, как перенаправить пользователя, не дожидаясь выхода после отправки. Почему я хочу это сделать? Это длинная история, я даже думал об использовании завиток >>Send php variable to two pagesJquery redirect после отправки на 1 страницу

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head> 
    <title>Example</title> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
function submitForm() { 
    $.ajax({ 
     type:'POST', 
     url: 'hidd.php', 
     data:$('#ContactForm').serialize(), 
}); 

     $.ajax({ 
     type:'POST', 
     url: 'ns.php', 
     data:$('#ContactForm').serialize(), 
}); 


    return false; 
} 
    </script> 
</head> 

<body> 
<form id="ContactForm" onsubmit="return submitForm();"> 
    Your subdomain: <input type="text" name="subdomain" value="" /><br /> 
    Your ns1: <input type="text" name="ns1" value="" /><br /> 
    Your ns2:<br /> <input type="text" name="ns2" value="" /> 
    <br /><br /> 
    <input type="submit" name="submit" value="Submit" /><br /> 
    <div class="form_result"> </div> 
</form> 

</body> 
</html> 
+2

Вы должны сериализовать #ContactForm в одиночной переменной, а затем добавить ее к данным обоих сообщений. – elrado

+0

Но я думаю, если вы сделаете это, ваш другой запрос не будет запущен. Вы можете сделать это на 'success' во втором представлении, и это будет как можно скорее ... – elclanrs

ответ

1

Вы можете использовать метод $ .post. Я не уверен в структуре ваших php-файлов, но вы можете обрабатывать опубликованные данные, как вам нравится.

изменение HTML от:

<form id="ContactForm" onsubmit="return submitForm();"> 
     Your subdomain: <input type="text" name="subdomain" value="" /><br /> 
     Your ns1: <input type="text" name="ns1" value="" /><br /> 
     Your ns2:<br /> <input type="text" name="ns2" value="" /> 
     <br /><br /> 
     <input type="submit" name="submit" value="Submit" /><br /> 
     <div class="form_result"> </div> 
    </form> 

к:

<form id="ContactForm"> 
    Your subdomain: <input type="text" name="subdomain" value="" id="subDomain" /><br /> 
    Your ns1: <input type="text" name="ns1" value="" id="ns1" /><br /> 
    Your ns2:<br /> <input type="text" name="ns2" value="" id="ns2" /> 
    <br /><br /> 
    <input type="button" name="submit" value="Submit" id="submitButton" /><br /> 
    <div class="form_result"> </div> 
</form> 

JavaScript:

$(document).ready(function(){ 
     $('#submitButton').click(function(){ 
     var subDomain = $('#subDomain').val(); 
     var ns1 = $('#ns1').val(); 
     var ns2 = $('#ns2').val(); 
      $.post('hidd.php', { 
       subDomain : subDomain, 
       ns1 : ns1, 
       ns2 : ns2 
      }); 
      $.post('ns.php', { 
       subDomain : subDomain, 
       ns1 : ns1, 
       ns2 : ns2 
      }, function(){ 
       location.href="index.php"; 
      }); 

     }); 
    }); 

изменение кнопки от отправки на кнопку будет остановить автоматическую переадресацию, чтобы вы не нужно возвращать false. Тогда вы можете перенаправить, когда захотите.

+0

У вас возникла ошибка с этим 'subDomain: subDomain,'. В чем разница, если 'function() { location.href =" index.php "; } 'после функции' ns.php' вместо функции 'hidd.php'. Я положил его после функции «hidd.php», и он все еще перенаправляется, но я не уверен, действительно ли перенаправление происходит после того, как «hidd.php» или поместив его в любом месте, совсем не отличается. Я ценю вашу помощь. Спасибо. – sg552

+1

im не уверен, почему возникает ошибка с частью subDomain. Он должен работать так, как написано. Что касается того, куда вы помещаете перенаправление, я помещаю его после ns.php только потому, что я хотел запустить его после того, как оба сценария были отправлены. Я бы не поставил его перед тем, как отправить второй скрипт, поскольку он может не иметь пожара после записи с данными. но вы также не обязательно должны вводить его в функцию обратного вызова второго сообщения. Вы можете поместить его после обоих сообщений, и он все равно будет работать нормально. – iAmClownShoe

+0

Моя ошибка. Я изменяю 'id = subDomain' на' id = subdomain' и утверждаю, что это была ошибка. Это была ошибка с моей стороны. – sg552

0

Вы можете сделать это:

$.ajax({ /** params **/ }); 
$.ajax({ /** params **/ }); 
location.href='index.php'; 
+0

Я пытаюсь, и моя вторая функция ajax не будет работать. – sg552

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