2013-05-04 155 views
0

我有一個表單用於將值傳遞給另一個頁面及其工作。在不加載新頁面的情況下提交表單值

有沒有辦法做到這一點,而無需打開我的表單動作設置的頁面?

我認爲它可以使用Ajax和JavaScript

echo "<form name=\"android\" method=\"post\" action=\"http://www.example.com\" target=\"_blank\">"; 
echo "<input type=\"hidden\" name=\"appid\" value=\"$appid\" />"; 
echo "<input type=\"hidden\" name=\"pushmessage\" value=\"$pushmessage\" />"; 
echo "<input type=\"hidden\" name=\"username\" value=\"$user\" />"; 
echo "<input type=\"hidden\" name=\"pass\" value=\"$pass\" />"; 
echo "<input type=\"hidden\" name=\"publisherid\" value=\"createcoolapps\" />"; 
//echo "<input type=\"submit\" value=\"Push\" name=\"sub\" />"; 
echo "</form>"; 
echo "<script> document.forms[0].submit();</script>"; 
+3

是的,你認爲是對的。 – Pino 2013-05-04 16:31:50

+0

你能幫我做那個..嗎?我嘗試了很多次,但沒有成功 – gss 2013-05-04 16:34:33

+0

你試過了什麼?那裏有很多Ajax教程。這真的是他們解釋的第一件事。 – Pino 2013-05-04 16:39:18

回答

1

試試這個來完成:

$url = 'http://www.example.com/'; 
$fields = array(
    'appid' => urlencode($appid), 
    'pushmessage' => urlencode($pushmessage), 
    'username' => urlencode($user), 
    'pass' => urlencode($institution), 
    'publisherid' => urlencode("createcoolapps") 
); 

foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

$ch = curl_init(); 

curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

$result = curl_exec($ch); 

curl_close($ch); 
0

是的,這是可以使用Ajax完成的,像你想象的。到目前爲止,要做到這一點最簡單的辦法就是從這裏使用jQuery的AJAX庫(因爲如果不出意外,使用jQuery現在誰):http://api.jquery.com/jQuery.ajax/

一個例子可能是如下(未經測試,但有些右):

<form action="mypage.php" method="post"> <!-- Args for when JS is disabled --> 
    <input type="text" id="form_text_1" value="" /> 
    <input type="submit" id="form_submit" /> 
</form> 

<script> 
    $('#form_submit').click(function() { 
     jquery.ajax("mypage.php", { 
      type: "post", 
      data: { 
       text1: $('#form_text_1').val() 
      } 
     }); 
     return false; // Stop the form being submitted in the foreground when JS works 
    }); 
</script> 

當然,適應你的需求。

0

這是很容易的,如果你可以包括jQuery庫:http://www.jquery.com

如果你使用jQuery,你有上面的代碼,你可以做到以下幾點:

$('input[name="sub"]').click(function() { 
    $.post($(this).parents('form').attr('action'), $(this).parents('form).serialize()); 
    return false; 
}); 

這截獲的點擊提交名爲「sub」,然後執行並AJAX發佈到表單的動作。

你應該看看你的瀏覽器控制檯來跟蹤發佈的數據並發現任何問題。

相關問題