我正在努力解决这个问题。 我有这个叫做getCategories的函数:
您好。我正在努力解决这个问题。 我有这个
function getCategories(){
global $con;
$q = "SELECT * FROM categories;";
$result = mysqli_query($con, $q);
while($row = mysqli_fetch_assoc($result)){
$category = $row["CategoryName"];
$sec = htmlspecialchars($category);
echo " <tr>
<td>" . $category . "</td>
<td>
<a>View</a> |
<a href=categories.php?task=update&category=" . urlencode($category) . ">Edit</a> |
<a href=categories.php?task=delete&category=" . urlencode($category) . ">Delete</a>
</td>
</tr>";
}
}
然后我有categories.php
(表格)
<form action="categories.php" method="POST">
<p>
<label for="categoryname">Category Name: </label>
<input type="text" name="category_name" placeholder="Enter category name" value="<?php echo $editCat?>">
<?php
if ($_GET["task"]="") {
echo "<input type='submit' value='Add Category' name='submit'>";
} else {
echo "<input type='submit' value='Update Category' name='update'>";
}
?>
</p>
</form>
但是当我点击编辑按钮时,脚本总是回显第一个。我该怎么办?
答案 0 :(得分:0)
if($ _GET [“task”] =“”)
应该是
if($ _GET [“task”] ==“”)
因为第一个将永远返回true
答案 1 :(得分:0)
您正在分配。你应该做比较,所以把这一行:
if ($_GET["task"] == "") {
而不是这一行:
if ($_GET["task"]="") {
更新(技术稍微):
你写的确实检查比较的结果是否返回true
或false
,并且因为在99.99999%变量赋值操作成功结束,第一个条件总是被传递而执行者永远不会到达第二个条件的内容。
答案 2 :(得分:0)
您可以检查任务变量是否作为查询字符串在url中传递。
<?php
if (!isset($_GET["task"]) || $_GET["task"] == '') {
echo "<input type='submit' value='Add Category' name='submit'>";
} else {
echo "<input type='submit' value='Update Category' name='update'>";
}
?>