PHP通过URL传递变量

时间:2011-08-23 02:05:17

标签: php url variables

我理解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 个答案:

答案 0 :(得分:4)

由于您已经在PHP块中,因此不应将变量包装在<?php ... ?>中。这会给你一个错误。

要完成这项工作,您可以选择2个选项中的一个:

1)String Concatenation:

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

2)用"(双引号)代替'(单引号)包裹你的字符串:

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

请注意,第二种方法强制您转义字符串中的所有双引号。

答案 1 :(得分:1)

2分。

  1. <form action="index.php?thisrow=<?php echo $currentrowid ?>" method="post">
  2. 您应该使用$ _POST而不是$ _GET来获取帖子值。

答案 2 :(得分:1)

如上所述,

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

是对的。 这背后的原因是你传递HTML,你必须使用来自 php的echo 输出到html。否则你只是得到你所放的东西,即$ currentrowid。

答案 3 :(得分:1)

不是最简单的方法,而是解决问题的快捷方法。将表单方法更改为method="get">,然后

$val = $_GET['thisrow'];