PHP передать переменную через URL - PullRequest
2 голосов
/ 23 августа 2011

Я понимаю, как работает PHP URL - я думаю ... но у меня возникают проблемы с получением фактического значения переменной для передачи в следующем примере.

Пример

Примечание. Я добавляю приведенную ниже форму в ячейку данных (как часть таблицы, читаемой через PHP).

$currentrowid = 1;

echo '<td>
  <div class="editdelete">
    <form action="phpindex.php?page=edit&thisrow=<?php echo $currentrowid;?>" method="post">
      <input type="submit" value="Edit" >
    </form>
  </div>
</td>';

... Некоторые другие разделы кода для чтенияВывод URL в приведенной выше форме:

$val = $_POST['thisrow']; 
echo "the value is: " .$val; //Outputs "$currentrowid"

Итак, как вы можете видеть, код возвращает фактическое имя передаваемой переменной, а НЕ значение передаваемой переменной.

Есть идеи здесь?

Ответы [ 4 ]

5 голосов
/ 23 августа 2011

Поскольку вы уже находитесь в блоке PHP, вам не следует заключать переменную в <?php ... ?>.Это приведет к ошибке.

Чтобы сделать эту работу, вы можете выбрать один из 2 вариантов:

1) Объединение строк:

echo '... <form action="phpindex.php?page=edit&thisrow='.$currentrowid.'" method="post"> ...';

2) Обернутьстрока в " (двойные кавычки) вместо ' (одинарные кавычки):

echo "... <form action=\"phpindex.php?page=edit&thisrow=$currentrowid\" method=\"post\"> ...";

Обратите внимание, что второй метод заставляет вас избегать всех двойных кавычек внутри вашей строки.

1 голос
/ 23 августа 2011

Не самый простой, но быстрый способ решения вашей проблемы. Измените метод формы, чтобы получить method="get">, затем

$val = $_GET['thisrow']; 
1 голос
/ 23 августа 2011

Как и было сказано выше,

<form action="index.php?thisrow=<?php echo $currentrowid; ?>" method="post">

правильно.Причиной этого является то, что вы передаете HTML, и вы должны использовать echo из php для вывода в html.В противном случае вы просто получите именно то, что положили, то есть $ currentrowid.

1 голос
/ 23 августа 2011

2 балла.

  1. <form action="index.php?thisrow=<?php echo $currentrowid ?>" method="post">
  2. Вы должны использовать $ _POST, а не $ _GET, чтобы получить значение сообщения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...