2012-02-17 5 views
5

Например, скажем, что у вас есть цикл, который производит кнопку каждый раз, когда она петли. Так что если цикл будет работать пять раз, будет 5 кнопок. Теперь скажем, что у меня есть переменная типа $ num, которая будет меняться каждый раз, когда петли цикла. Есть ли способ, чтобы каждая кнопка передавала свою цифру $ num при нажатии кнопки?Есть ли способ передать переменную php на другую страницу с помощью кнопки (html/php)?

$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 
} 

ответ

1

Значение имени & кнопки должно быть представлено с формой.

Например:

<?php print_r($_POST); ?> 

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

При нажатии кнопки "Кнопка" нажата, форма будет представлена ​​и

Array ([button] => value) 

будет выводиться над формой.

Применяя это к вашей ситуации, можно было бы использовать что-то вроде:

$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

Вы почти там:

$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

@highway жизни, теперь это смешно. На секунду я подумал, что вы копируете/вставляете мой ответ. :) Угадайте, что вы на самом деле ответили первым. И я думаю, что мы оба предположили, что OP поставил их в

TecBrat

+0

LOL !! Это очень смешно ... Я подумал, что мой ответ получил сообщение дважды, так как мы оба использовали тот же формат для конкатенации. –

4

Самый простой способ создать <form> окружающую каждый из <button> тегов :

$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++; 
} 

Какое бы ни было нажато, будет передано до xyz.php как $_POST['editId'].

Хотя этот метод создает для каждой кнопки другую форму, существуют другие способы сделать это с использованием JavaScript, который будет использовать одну форму и присваивать значение скрытому вводу на основе щелчка кнопки. Если отправлено только одно входное значение, возможно, проще всего ввести код с несколькими <form> s.

+0

Проблема с этим заключается в том, что вы получите 5 (или более) '' тегов, которые не нужны. –

+0

Спасибо, это то, что я искал! –

+0

Несколько форм не нужны. Формы с несколькими элементами 'button' будут передавать имя/значение любой кнопки, чтобы отправить форму. –

0

Вы очень близко. Просто вставьте $num в атрибут value вашей кнопки.

$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 
} 

Когда вы окружаете этот блок кода в <form> тегов, нажав на кнопку [ Remove ] пошлёт значение $num на: $_POST['editId'].

Смежные вопросы