PHP уникальные имена для нескольких кнопок отправки не работает - PullRequest
0 голосов
/ 12 января 2011

Я занят созданием небольшой поисковой системы, которая получает информацию из моей БД. Следующее, что должно произойти, это то, что каждая найденная запись имеет возможность редактировать ее. Поэтому я должен дать каждой записи кнопку отправки с уникальным именем. Это прекрасно работает, пока я не нажму кнопку. Тогда каждая кнопка имеет одинаковое имя.

create form:"
<form sutff>
$t=0;
while (){<br/>
$t+=1;<br/>
input type="Submit" name="$t"/><br/>
}</form>

одно нажатие кнопки:

while($_POST[$t]>0){
  if (isset($_POST[$t])) { 
    do stuff
  }
  else{
    $_POST[$t]-=1;
  }
}

Не беспокойтесь о почестях, '' и "". Я сам исправлю.

Ответы [ 4 ]

1 голос
/ 12 января 2011

Вы можете использовать отдельную форму для каждой строки, чтобы вы могли иметь скрытые поля с данными.

Другим решением является использование события onclick на кнопке submit для установки скрытого поля перед продолжением отправки.

Присвоение имени кнопке должно работать.

Третий вариант - вообще не использовать submit, а перейти к простой кнопке и использовать вместо нее onclick, чтобы открыть URL.

Четвертый вариант - подделать кнопку изображением со ссылкой вокруг.

Но, имея больше информации, мы могли бы получить больше идей.

1 голос
/ 12 января 2011

Подход JavaScript выглядит следующим образом:

<form name="form1" method="post">
<input type="hidden" name="item_id" value="">
<input type="submit" value="submit this" onclick="document.form1.item_id.value = '<?php echo 16; ?>';">
<input type="submit" value="submit this" onclick="document.form1.item_id.value = '<?php echo 32; ?>';">
<input type="submit" value="submit this" onclick="document.form1.item_id.value = '<?php echo 48; ?>';">
</form>

На стороне сервера:

<?php
$item_id = $_POST["item_id"];
?>

Другой вариант, возможно, лучше, так как его решение на 100% HTML + CSS, состоит в том, чтобычто-то вроде этого:

<style type="text/css">
.submit-button {
    .submit-button {
        /* WARNING: works only in standards compliance mode */
        text-indent: -1000px; /* this hides the button label */
        background: url("edit.gif") no-repeat; /* this places an icon inside the button */
        margin: 0; /* rest makes the button look CoOl */
        border: 1px solid;
        border-color: buttonhighlight buttonshadow buttonshadow buttonhighlight;
        padding: 0;
        width: 18px;
        height: 18px;
    }
</style>

<form name="form1" method="post">
<input type="submit" name="item_id" value="<?php echo 16; ?>" class="submit-button">
<input type="submit" name="item_id" value="<?php echo 32; ?>" class="submit-button">
<input type="submit" name="item_id" value="<?php echo 64; ?>" class="submit-button">
</form>

На стороне сервера:

<?php
$item_id = $_POST["item_id"];
?>
0 голосов
/ 12 января 2011

Почему это должна быть кнопка отправки или даже кнопка?

<a href="edit.php?id=1">Edit item 1</a>
<a href="edit.php?id=2">Edit item 2</a>
<a href="edit.php?id=3">Edit item 3</a>
<a href="edit.php?id=4">Edit item 4</a>
0 голосов
/ 12 января 2011

Я не уверен, что вы спрашиваете

Вы можете установить значение для кнопки отправки и прочитать это

 <input type='submit' name='sub' value='edit' />
 <input type='submit' name='sub' value='search' />

А затем в php вы можете сделать

if ($_POST['sub'] == "edit") { 
    //Do edits
}
else if ($_POST['sub'] == "search"){
    //Do searching
}
else{
    //Run Away....
}

Надеюсь, это поможет!

...