我理解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"
因此,您可以看到代码返回传递的变量的实际名称,而不是传递的变量的值。
这里有什么想法吗?
答案 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分。
<form action="index.php?thisrow=<?php echo $currentrowid ?>"
method="post">
答案 2 :(得分:1)
如上所述,
<form action="index.php?thisrow=<?php echo $currentrowid; ?>" method="post">
是对的。 这背后的原因是你传递HTML,你必须使用来自 php的echo 输出到html。否则你只是得到你所放的东西,即$ currentrowid。
答案 3 :(得分:1)
不是最简单的方法,而是解决问题的快捷方法。将表单方法更改为method="get">
,然后
$val = $_GET['thisrow'];