2012-02-17 65 views
5

Ví dụ: giả sử bạn có một vòng lặp tạo ra một nút mỗi lần nó lặp lại. Vì vậy, nếu vòng lặp chạy năm lần, sẽ có 5 nút. Bây giờ nói rằng tôi có một biến như $ num sẽ thay đổi mỗi lần vòng lặp. Có cách nào để mỗi nút sẽ vượt qua số tiền cá nhân $ num khi nút được nhấp?Có cách nào để chuyển biến số php sang trang khác bằng nút (html/php) không?

$num = 0; 
while(...){ 
    //want this to send $num via POST or GET to xyz.php 
    echo '<button type="submit" value="3" name="editId">Remove</button>'; 
    $num++;//$num changes every instance of the loop 
} 

Trả lời

1

Giá trị của nút & giá trị phải được gửi cùng với biểu mẫu.

Ví dụ:

<?php print_r($_POST); ?> 

<form action="" method="post"> 
    <button type="submit" name="button" value="value">Button</button> 
</form> 

Khi nút "Button" được nhấp, hình thức sẽ được đệ trình và

Array ([button] => value) 

sẽ được xuất ra trên biểu mẫu.

Áp dụng điều này với tình hình của bạn, người ta có thể sử dụng một cái gì đó như:

$num = 0; 
while(...){ 
    // Set $num as the value of each button 
    echo "<button type='submit' value='{$num}' name='editId'>Remove</button>"; 
    $num++;//$num changes every instance of the loop 
} 
0

Bạn sắp thực hiện:

$num = 0; while(...){  //want this to send $num via POST or GET to xyz.php 
echo '<button type="submit" value="'.$num.'" name="editId">Remove</button>';  
$num++;//$num changes every instance of the loop 
} 
+0

@đường cao tốc của cuộc sống, giờ thật là buồn cười. Trong một giây, tôi nghĩ bạn đã sao chép/dán câu trả lời của tôi. :) Đoán bạn thực sự trả lời đầu tiên. Và tôi nghĩ cả hai chúng tôi đều cho rằng OP đã đưa chúng vào một

TecBrat

+0

LOL !! Điều đó rất buồn cười ... Tôi nghĩ trong giây lát câu trả lời của tôi đã được đăng hai lần bằng cách nào đó, vì cả hai chúng tôi đều sử dụng cùng một định dạng để ghép nối. –

4

Cách đơn giản nhất là tạo ra một <form> xung quanh mỗi <button> thẻ :

$num = 0; 
while(...){ 
    //want this to send $num via POST or GET to xyz.php 
    echo '<form method="post" action="xyz.php">'; 
    // Pass $num into the form value 
    echo '<button type="submit" value="' . $num. '" name="editId">Remove</button>'; 
    echo '</form>' 
    $num++; 
} 

Tùy chọn nào được nhấp sẽ được chuyển đến xyz.php$_POST['editId'].

Trong khi phương pháp này tạo biểu mẫu khác cho mỗi nút, có nhiều cách khác để sử dụng JavaScript, sử dụng một biểu mẫu và gán giá trị cho đầu vào bị ẩn dựa trên nút được nhấp. Nếu chỉ có một giá trị đầu vào được gửi, tùy chọn nhiều <form> có lẽ là dễ nhất để mã.

+0

Vấn đề với việc này là bạn sẽ kết thúc với 5 (hoặc nhiều hơn) '' thẻ không cần thiết. –

+0

Cảm ơn bạn, đây là những gì tôi đang tìm kiếm! –

+0

Nhiều biểu mẫu không cần thiết. Các biểu mẫu có nhiều phần tử 'nút' sẽ chuyển tên/giá trị của bất kỳ nút nào được nhấn để gửi biểu mẫu. –

0

Bạn đang ở rất gần. Chỉ cần chèn $num vào thuộc tính value của nút của bạn.

$num = 0; 
while(...){ 
    //want this to send $num via POST or GET to xyz.php 
    echo '<button type="submit" value="'.$num.'" name="editId">Remove</button>'; 
    $num++;//$num changes every instance of the loop 
} 

Khi bạn bao quanh khối mã này trong <form> thẻ, nhấn vào nút [ Remove ] sẽ gửi giá trị của $num tới: $_POST['editId'].

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