你必須確保你$.post()
-ing頁面是在同一個域。另外,$.post()
不是提交表單的一種方式,它是一個Ajax調用,它不會而不是在當前頁面上加載新頁面。所以這適用於我,將POST的結果加載到頁面的主體中。
<html>
<head>
<title>Test Page</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btn1").bind('click', function() {
var arr= [];
$("#target_select option").each (function() {
arr.push($(this).val());
});
$.post("post.php", { 'name': arr }, function(data){
$('body').append(data);
});
});
});
</script>
</head>
<body>
<form method="POST" action=".">
<select name="target_select" id="target_select">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option2</option>
</select>
<input type="button" value="btn1" id="btn1" />
</form>
</body>
</html>
下面是我在post.php
:
<?php
print "<pre>";
print_r($_POST);
print "</pre>";
?>
當我這樣做,我得到這個追加到我的網頁:
Array
(
[name] => Array
(
[0] => option1
[1] => option2
[2] => option3
)
)
這似乎並沒有工作。我正在使用IE 7. – JPro 2010-06-16 16:11:07
你在這裏看到什麼? http://jsfiddle.net/4BVwX/ – Lance 2010-06-16 16:15:45
在我對當前的Chrome,Safari和Firefox的測試中,直接應用於'.attr(「value」)'和'.val()'時,沒有區別'