函数中的PHP语法

时间:2011-06-30 16:08:36

标签: php syntax

我正在使用循环来查看查询结果并在网格中显示数据。我只想在某些行中显示删除按钮。我可以设置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。谢谢马克。

5 个答案:

答案 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;

在您要访问它的函数中。