Кнопка формы HTML, несущая элемент массива в виде строки

0

Я хочу иметь возможность переносить $_POST['v'] (string) на delete.php, используя кнопку формы HTML.

$directory = "exports/";
$contents = scandir($directory,1);
foreach($contents as $k => $v) {
if ($v != '.' && $v != '..') { 
  echo "<a href=\"$directory" . $v . "\">".$v."</a>";
  echo "<form action=\"delete.php\" method=\"post\"><a class=\"buttonnohover\"><input type=\"submit\" class=\"button\" name=\"v\" value=\"Delete\" /></form>  <br>";
  }
}

В настоящий момент кнопка submit просто возвращает строку (6) "Удалить". Я хочу, чтобы $ _POST ['v'] равнялся каждому отдельному $ v (имя файла внутри каталога), который был нанесен на каждую кнопку.

Что я не делаю правильно?

  • 3
    А какой у тебя вопрос?
  • 0
    Я думаю, вы хотите, чтобы кнопка отправки имела значение, это правильно?
Теги:
forms
button
session-variables

1 ответ

2
Лучший ответ

Если вы хотите получить значение $v для delete.php, используя форму, вы можете использовать скрытый ввод:

echo '<a href="'.$directory.$v.'">'.$v.'</a>';
echo '<form action="delete.php method="post">
    <input type="hidden" name="v" value="'.$v.'" />
    <a class="buttonnohover"><input type="submit" class="button" name="submit" value="Delete" />
    </form><br>';

В настоящее время вы получаете "Удалить", потому что это значение кнопки - так же, как вы определили ее в HTML.

Кроме того, я бы предложил переименовать $v в $filename - в настоящее время это всего лишь критическая переменная, потому что контекст невелик, конечно, вы знаете, что он держит, но только взглядом на другие строки кода. Когда вы назовете его $filename, вы сразу узнаете, что будет содержимым этой переменной.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню