2012-08-12 26 views
7

Tôi đã đăng ký một ứng dụng và tôi bị kẹt tại một thời điểm nhất định.Cách chuyển nhiều giá trị của một biến thông qua một URL

Tôi đang cố chuyển một biến có nhiều giá trị. Vì vậy, URL của tôi sẽ trông giống như:

localhost/report.php?variable=value1, value2, value3 

Vấn đề là tôi không chắc chắn làm thế nào tôi có thể làm điều này. Các biến sẽ được sử dụng để lấy dữ liệu từ cơ sở dữ liệu. Tôi đang sử dụng PHP và không có Javascript.

Mọi trợ giúp sẽ tuyệt vời!

EDIT:
Dưới đây là HTML tôi có trong trang của tôi, nơi các biến được chọn:

<select name="types" size="19" multiple> 
    <option value="all" selected>All Types</option> 
    <option value="book" selected>Books</option> 
    <option value="cd" selected>CD</option> 
</select> 

Vì vậy, người dùng có thể chọn Sách và CD, và tôi sẽ cần phải vượt qua hai giá trị trong biến "loại".

+1

làm thế nào về một mảng được tuần tự hóa? –

+0

Bạn đang sử dụng một từ để gửi tin nhắn này? nếu như vậy php chỉ nên lấy nó như là một mảng trong $ _POST ['loại']? – wgcrouch

+0

@wgcrouch Tôi đang sử dụng biểu mẫu để gửi. Nhưng khi tôi gửi URL này kết thúc như 'report.php? Variable = value1 & variable = value2' – mickburkejnr

Trả lời

5

Như đã lưu ý tại https://stackoverflow.com/a/2407401/1265817, bạn có thể sử dụng phương pháp này.

Nếu bạn muốn PHP để điều trị $ _GET [ 'Select2'] như một loạt các tùy chọn chỉ cần thêm dấu ngoặc vuông để tên của yếu tố lựa chọn như thế này: <select name="select2[]" multiple …

Sau đó, bạn có thể acces mảng trong chương trình PHP script

<?php 
header("Content-Type: text/plain"); 

foreach ($_GET['select2'] as $selectedOption) 
    echo $selectedOption."\n"; 
7

Sử dụng &

localhost/report.php?variable=value1&val2=value2&val3=value3 

Có phải đó là những gì bạn đang sau?

+3

đó là nhiều biến, không phải một biến với nhiều giá trị –

+0

Sắp xếp, những gì tôi thực sự cần là thêm tất cả các giá trị cho biến đó. Vì vậy, trong mã PHP tôi chỉ có thể sử dụng '$ variable = $ _GET ['variable']', vì vậy sau đó tôi có thể sử dụng $ variable trong truy vấn. – mickburkejnr

+0

Nếu cả hai trang đều nằm trên cùng một tên miền, bạn có thể sử dụng biến 'Session'? 'Session [" myStringName "] = someObject' sau đó chỉ cần đọc lại bằng cách truyền tới những gì bạn cần. Xin lỗi, nhưng PHP của tôi không tốt lắm. – jp2code

2

thử localhost/report.php?variable[]=value1&variable[]=value2 sẽ cung cấp cho bạn một mảng trong php

4

Có một cách đơn giản để làm điều này trong PHP bằng cách gọi http_build_query() và vượt qua giá trị của bạn như là một mảng được lập chỉ mục. Bạn sẽ làm điều gì đó như:

$value_array = array('types' => array('book', 'cd')); 
$query = http_build_query($value_array); 

Sau đó tạo url bằng cách sử dụng $query.

2

Tôi nghĩ rằng bạn có URL của bạn đúng

localhost/report.php?variable=value1,value2,value3 

Sau đó sử dụng PHP để có được tất cả các giá trị trên report.php trang

$variable = explode(",", $_GET["variable"]); 

// Output 
$variable[0] = "value1"; 
$variable[1] = "value2"; 
$variable[2] = "value3"; 
0

Bạn có thể sử dụng serialize như:

echo '<a href="index.php?var='.serialize($array).'"> Link </a>'; 

và nhận dữ liệu bằng cách sử dụng unserialize như:

$array= unserialize($_GET['var']); 

chức năng tuần tự hóa cho bạn phiên bản chuỗi có thể lưu trữ (chuỗi), và có thể được khôi phục bằng chức năng unserialize.

+0

Ý tưởng thú vị. Nếu tôi đánh dấu hoặc sao chép liên kết 'index.php? Var = '. Serialize ($ array).'', Tôi có thể tải lại dữ liệu đó sau này hoặc là dữ liệu tuần tự bị mất trong phiên không? – jp2code

Các vấn đề liên quan