繁体   English   中英

PHP通过URL传递变量

[英]PHP pass variable through URL

我理解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"

因此,正如您所看到的,代码返回传递的变量的实际名称 ,而不是传递的变量的值。

这里有什么想法?

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

要使其工作,您可以选择以下两个选项中的一个:

1)字符串连接:

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

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

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

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

2点。

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

如上所述,

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

是正确的。 这背后的原因是你逝去的HTML,你必须使用回声 PHP输出到HTML。 否则你只是得到你所放的东西,即$ currentrowid。

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

$val = $_GET['thisrow']; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM