我正在使用循环来查看查询结果并在网格中显示数据。我只想在某些行中显示删除按钮。我可以设置if else语句。
while($rows = mysql_fetch_array($result)){
//HTML code - I am not using echo here just plain html code written below
deleteButton();//I am calling the deleteButton function here.
//HTML code
}
我在页面顶部有一个deleteButton函数
function deleteButton()
{
echo "<form name='DeleteInfo' method='POST' action='delete.php'>";
echo "<input type='hidden' name='val1' value=$rows[col1]>";
echo "<input type='hidden' name='val2' value=$rows[col2]>";
echo "<input class='center' type='submit' value='Delete'/>";
echo "</form>";
}
我收到col1和col2的未定义变量行的错误。我假设这是一个语法问题。
我也试过了。
echo "<input type='hidden' name='val2' value=$rows['col2']>";
echo "<input type='hidden' name='val2' value='$rows[col2]'>";
此HTML代码可以使用
<input type="hidden" name="name1" value="<?php echo $rows['col3']; ?>">
编辑:已解决。它超出了范围。我必须在函数中使用全局$ rows。谢谢马克。
答案 0 :(得分:4)
您的$ rows变量在deleteButton函数的范围内不存在。你可以像这样修改它:
function deleteButton($rows) {
// etc
}
然后将其命名为:
deleteButton($rows);
答案 1 :(得分:1)
正如Steven所指出的那样,你必须将$行传递给函数。
完整示例:
function deleteButton($row)
{
echo "<form name='DeleteInfo' method='POST' action='delete.php'>";
echo "<input type='hidden' name='val1' value={$rows['col1']}>";
echo "<input type='hidden' name='val2' value={$rows['col2']}>";
echo "<input class='center' type='submit' value='Delete'/>";
echo "</form>";
}
while($rows = mysql_fetch_array($result)){
// ...
deleteButton($rows);
// ...
}
您可以将数组访问器包装在大括号中或使用连接
echo "<input type='hidden' name='val2' value={$rows['col2']}>";
echo "<input type='hidden' name='val2' value=".$rows['col2'].">";
答案 2 :(得分:1)
变量不会停留在从一个函数到下一个函数的范围内。如果您要在要调用的函数中使用变量,则需要将该变量传递给函数。 (另一个选择是让它们成为全球性的,但我会忽略它,因为过度使用全局变量不是一个好主意)
所以在你调用函数的地方,你需要像这样调用它:
deleteButton($rows);
...然后在函数声明中,你需要在那里添加它,如下所示:
function deleteButton($rows)
就PHP来说,这是相当基本的东西,或者实际上是编程。掌握这类事情对你有好处,确保你在写下太多代码时正确理解它。
答案 3 :(得分:0)
echo "<input type='hidden' name='val2' value=".$rows['col2'].">";
答案 4 :(得分:-1)
$ rows不能从该函数访问,所以你可以做的是将它作为参数传递给该函数,通过在任何范围之外定义并放置语句
来使$ rows GLOBAL。global $rows;
在您要访问它的函数中。