2010-06-16 64 views
1

我正在使用jquery按鈕單擊以將選擇框中的所有值發佈到PHP頁面,但此代碼似乎不起作用。任何人都可以幫忙嗎?將selextbox值發佈到jquery的php頁面

<script type="text/javascript"> 
$(function() { 
    $("#btn1").click(function() { 
     var arr= new Array; 
     $("#target_select option").each (function() { 
        // You can push the array on an array 
        arr.push($(this).val()); 
       //alert( $(this).val() ); not getting the alert to display too 
        }); 
     $.post("test.php", { name: arr }); 
    }); 
}); 

</script> 

生成

回答

0

嘗試使用的.attr("value")代替.val()。我不記得.val()是否適用於<option>標籤,但我不認爲。

<script type="text/javascript"> 
$(function() { 
    $("#btn1").click(function() { 
     var arr= new Array; 
     $("#target_select option").each (function() { 
        // You can push the array on an array 
        arr.push($(this).attr("value")); 
       //alert( $(this).attr("value") ); not getting the alert to display too 
        }); 
     $.post("test.php", { name: arr }); 
    }); 
}); 

</script> 

- 編輯 -

我發現同藝術(下面的評論),當我說的jsfiddle放在一起。

.attr("value").val()<option>標籤上是相同的。

我會刪除這個答案,但我認爲人們可能從評論和whatnot(因爲有另一個答案陳述相同)中發佈的澄清中受益。

+0

這似乎並沒有工作。我正在使用IE 7. – JPro 2010-06-16 16:11:07

+0

你在這裏看到什麼? http://jsfiddle.net/4BVwX/ – Lance 2010-06-16 16:15:45

+1

在我對當前的Chrome,Safari和Firefox的測試中,直接應用於'.attr(「value」)'和'.val()'時,沒有區別'

0

嘗試

arr.push($(this).attr('value')); 

代替

+0

在我對當前的Chrome,Safari和Firefox的測試中,當直接應用於'

1

你必須確保你$.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 
     ) 

)