2011-10-30 55 views
1

我有一個函數如何通過jQuery將JavaScript變量的值發送到其他頁面?

function postRequest(strURL) 
    { 
    $.ajax({ 
     type: "POST", 
     url: strURL,  
     success: function(data){ 
      updatePage(data); 
     } 
    }); 
    } 

我現在用這個函數這樣

function comment() 
{ 
    var x=document.forms["myForm"]["name"].value; 
    var y=document.forms["myForm"]["email"].value; 
    var z=document.forms["myForm"]["message"].value; 
    alert("the name is " + x); 
    postRequest("comment.php?name=" + x +"&email="+ y +"&message="+ z); 
} 

變量x,y,z爲在上一個form.alert函數獲取值,但一條線工作well.but的我不能發送值到comment.php

+0

是否AJAX請求根本不會發生,或者是你沒有看到'comment.php'正確的價值觀? –

+0

如果所有信息都在URL中傳遞,那麼您可以使用HTTP GET。 – supertopi

回答

0

這裏是一個工作代碼:

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
     <script> 
      function postRequest(server, dataToSend) 
      { 
       $.ajax({ 
        url: server, 
        data: dataToSend, 
        type: "POST", //If you want to make a GET just change it here. 
        success: function(data){ 
         //updatePage(data); 
         $("#result").append(data); 
        } 
       }); 
      } 

      function comment(e) 
      { 
       var x=document.forms["myForm"]["name"].value; 
       var y=document.forms["myForm"]["email"].value; 
       var z=document.forms["myForm"]["message"].value; 
       postRequest("comment.php", {name : x, email : y, message:z }); //Send the url of the server, and the data 
       //Stop the default form submit 
       return false; 
      } 

      $(document).ready(function() { 
       $('#myForm').submit(comment); 
      }); 
     </script> 
    </head> 
    <body> 
     <form id="myForm" name="myForm" method="GET" action="."> 
      <input type="text" name="name" /> <br /> 
      <input type="text" name="email" /> <br /> 
      <input type="text" name="message" /> <br /> 
      <input type="submit" value="search"/> 
     </form> 
     <div id="result"> 
      <h1>Data returned:</h1> 
     </div> 
    </body> 
</html> 

這看起來更像是你展示給我們什麼代碼,但我有一些建議,以改進的JavaScript代碼:

function postRequest(e) 
      { 
       $.ajax({ 
        url: "comment.php", 
        data: $('form#myForm').serialize(), 
        type: "POST", //If you want to make a GET just change it here. 
        success: function(data){ 
         //updatePage(data); 
         $("#result").append(data); 
        } 
       }); 
       //Stop the default form submit 
       return false; 
      } 

      $(document).ready(function() { 
       $('#myForm').submit(postRequest); 
      }); 

如果你還想要了解更多關於Ajax和JavaScript與jQuery一般你可以看看一個這真的是一本好書:

http://jqfundamentals.com/book/index.html#chapter-7

+0

thanq這工作簡直棒極了:) :) –

+0

可以請你解釋我這一行... $('#myForm')。submit(comment); 我們可以像這樣調用函數「comment」嗎? –

+0

with $('#myForm')。submit(評論)您將提交事件綁定到表單,並且如果您檢入jquery api http://api.jquery.com/submit/,則可以傳遞處理函數在這種情況下,我們的處理函數是註釋函數,它被視爲一個「回調」,這意味着我們的處理函數不會在賦值時被調用,它將在執行提交事件時被調用,您可以採取如果我的答案解決了您的問題,請深入瞭解事件如何運作http://jqfundamentals.com/book/index.html#chapter-5,請隨時接受點擊接受按鈕 – ElHacker

相關問題