2014-01-14 106 views
3

我想提交一個表單到行動頁面,這是一個不同的網站,但我不想被定向到行動頁面。我已經竭盡所能,但它不是爲我工作,我聽說過ajax沒有工作能有人給我的例子提交表單而不重定向

我想要什麼:

  • 我想提交表單,但不能被重定向
  • 提交表單,因爲我被重定向到操作頁面,我被重定向到我的原始頁面。

我的代碼:

<form id="user-login-form" accept-charset="UTF-8" action="http://xxxxxn" method="post"> 
<div> 
<div class="user_login_block&amp;op=Log+in"><label for="edit-name"><span class="form-required" title="This field is required.">*</span></label> 
<input type="hidden" /> 
<div> 
<div class="user_login_block&amp;op=Log+in"><label for="edit-name"><span class="form-required" title="This field is required.">*</span></label> 
<input type="hidden" /> 
<input class="form-text required" id="edit-name" type="hidden" maxlength="60" name="name" size="15" value="xxxxxx2" /></div> 
<div class="form-item form-type-password form-item-pass"><label for="edit-pass"></label> 
<input class="form-text required" id="edit-pass" type="hidden" maxlength="60" name="pass" size="15" value="9sQ&amp;ampzW#7PKhpqbzcCFz9jvY" /> 
<input type="hidden" /></div> 
</div> 
<input type="hidden" name="form_build_id" value="form-odWc3MFMsKIL_5vCQtPmiv0AVf0tFwBu7eP2-8" /> 
<input type="hidden" name="form_id" value="user_login_block" /> 
<div class="form-actions form-wrapper" id="edit-actions"><input class="form-submit" id="edit-submit" type="submit" name="op" value="submit" /> 
+0

你需要做的嘗試在來之前解決問題在這裏尋求幫助。 AJAX確實是正確的方式;到目前爲止,您在嘗試實現AJAX時嘗試了些什麼?有很多教程可以幫助... – Mathew

+0

我試過很多東西,甚至下面的代碼,但它不工作 – user3182036

+1

可能重複[如何提交HTML表單,而無需重定向?](https://stackoverflow.com/ questions/25983603/how-to-submit-html-form-without-redirection) – StefansArya

回答

11

檢查下面的例子:

檢查此鏈接: http://susheel61.0fees.net/ajaxtest.php

注: 這是AJAX基本一個例子。你不能做很多其他的方式,如使用$ .post,$ .get等,但$ .ajax有很多選項,如在加載內容之前顯示加載圖像。

HTML:

<!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>ajax example</title> 
     <script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    </head> 
    <body> 
     <div id="message"></div> 
     <form id="myform" action="test.php"> 
      <input type="text" name="test"/> 
      <input type="submit" value="submit"/> 
     </form> 
     <div id="response"></div> 

     <script> 
      $(function() { 
       $("#myform").on("submit", function(e) { 
        e.preventDefault(); 
        $.ajax({ 
         url: $(this).attr("action"), 
         type: 'POST', 
         data: $(this).serialize(), 
         beforeSend: function() { 
          $("#message").html("sending..."); 
         }, 
         success: function(data) { 
          $("#message").hide(); 
          $("#response").html(data); 
         } 
        }); 
       }); 
      }); 
     </script> 
    </body> 
</html> 
+0

我在哪裏將它放在窗體標記或外部? – user3182036

+0

我沒有找到你 –

+0

我必須將上面的代碼放在我的表單中或我的表單外 – user3182036

0

試試這個:

$('form').submit(function(event){ 
var serialObject = $(this).serialize(); 
//ex for post request 
    $.post('path_to file',{ 
    parameters:serialObject 
    },function(data){ 
     // do something after submitting 
    }); 
    }); 

event.preventDefault() 
1

如果實在不行,你可以重定向到一個隱藏的iframe。

<iframe id="iframe" name="my_iframe"></iframe> 
<form class="form" id="userform" target="my_iframe"> 
+1

AJAX可以替代不可見的CSRF攻擊。 – baptx

0

在PHP中,你可以重定向使用標頭回形式:

header('Location: yourwebsite.com'); 

希望這對你的作品

+0

2年後,哈哈 – user6062340