通过PHP创建动态按钮

时间:2015-11-30 13:18:55

标签: javascript php jquery html

我正在尝试通过PHP查询mysql以从表中获取类名列表。然后,我希望用户单击其中一个类名称,将其重定向到一个页面,该页面显示单击任何类的类名称。名单是从数据库中的另一个表中即时生成的,现在我只想将类名保存为会话变量,然后让roster.php页面使用该变量来查询正确的名册。

例)

class a -click-> roster.php

- &GT; echo (// roster 'a' as <ol> from table);

class b -click-&gt; roster.php

- &GT; echo (// roster 'b' as <ol> from table);

class a -click-&gt; roster.php

- &GT; echo (// roster 'c' as <ol> from table);

我理解如何查询以及如何通过php页面回显html列表,但是我不确定如何为类名生成按钮,然后让网页跟踪点击哪个按钮在。

以下是我编写的用于从数据库生成名单的代码。

$sql = "SELECT firstname, lastname FROM student_Data WHERE classs =" . $_SESSION['classname'];
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     // output data of each row
     echo("<div id=\"list1\">")
     while($row = $result->fetch_assoc()) {
         echo ("<li><h4 class=\"list-group-item-heading\">". $row["firstname"]. " " . $row["lastname"] . "</h4></li>");
     }
     echo("</div>");
} else {
     echo ("");
}

旁注:这是一个个人项目,所以我宁愿生成有效代码的快速代码。这就是为什么我对会话变量没问题。

2 个答案:

答案 0 :(得分:0)

您可以输出类链接列表,其输出方式与输出学生列表的方式完全相同。假设您在上一页中有关于类的数据库查询,它可能看起来像这样:

while($row = $result->fetch_assoc()) {
    echo ("<a href=\"class.php?id=" . $row["id"] . "\">" . $row["name"] . "</a>");
}

所以生成的链接看起来像这样:

<a href="class.php?id=1">Class A</a>
<a href="class.php?id=2">Class B</a>
<a href="class.php?id=3">Class C</a>

然后在下一页中,您可以使用$_GET["id"]从查询字符串中获取标识符。 注意当然,用户可以更改此值 。因此,希望直接在SQL查询中使用它,就像您目前使用会话值一样。 (你不应该这样做,真的。)而是使用预准备语句并将其绑定为,而不是将其作为代码执行。

答案 1 :(得分:0)

您可以使用查询字符串参数:

显示按钮页面:

$sql = "SELECT id, classname FROM classes";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    echo "<ul id='list1'>";
     while($row = $result->fetch_assoc()) {
         echo sprintf("<li><a href='roaster.php?classId=%s'>%s</a></li>", $row['id'], $row['classname']);
     }
     echo "</ul>";
}

roaster page

$sql = "SELECT firstname, lastname FROM student_Data WHERE classid =" . $_GET['classId'];

请注意,您需要使用准备好的查询来处理丢失/无效ID,并正确防止SQL注入。以上没有显示这是为了重复