我正在寻找有关如何进行的建议。目前,我已将我的应用程序连接到商人的SQL数据库,并且已经能够成功地在“提交”按钮下方的表格内的同一页面上显示搜索结果。在此表中,我有关于返回的每个商人的少量信息,并且在表行的末尾有一个值为“更多信息”的按钮。单击后,该按钮会将用户带到另一个名为“ info.php”的页面。
当用户单击该按钮时,我需要以某种方式在info.php页面上生成有关该特定商人的所有信息。由于我需要PHP来进行数据库查询,而PHP似乎没有JavaScript那样的onClick事件,因此我不确定如何实现这一点。如何将按钮链接到与其关联的特定商人,以便可以返回正确的结果?在这种情况下,如何查询数据库?
我的目标网页代码如下。我不需要显示所有我需要执行的代码。我真的只需要指出正确的方向。谢谢!
<body>
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include("functions.php");
?>
<div class='nav'>
<ul>
<li><a href='#about' class='navLink'>About</a></li>
<li><a href='#login' class='navLink'>Login</a></li>
<li><a href='#contact' class='navLink'>Contact</a></li>
</ul>
</div>
<div class='wrapper'>
<h1>Welcome!</h1>
<div class='form_container'>
<form action='landing_page.php' method='post'>
<input type='text' name='trade' placeholder='What trade do you want to learn?'>
<p><button class='btn btn-success' name='submit' type='submit'>Find a mentor</button></p>
</form>
</div>
<?php
if(isset($_POST['submit'])) {
$trade = $_POST['trade'];
$results = query_database($trade);
if($results) {
$num_results = count($results);
print "<table><tr><th>First</th><th>Last</th><th>City</th><th>State</th><th>Available</th></tr>";
for($i=0; $i<$num_results; $i++) {
for($j=0; $j<5; $j++) {
if($j==0) {
print "<td>" . $results[$i][$j] . "</td>";
}
else if($j==4) {
print "<td>" . $results[$i][$j] . "</td><td><input type='button' value='more info' class='btnClass' onClick='location.href=\"info.php\"'></td></tr>";
}
else {
print "<td>" . $results[$i][$j] . "</td>";
}
}
}
print "</table>";
}
}
?>
</div>
</body>
答案 0 :(得分:1)
单击网格每一行末尾的“更多信息”按钮时,可以将当前行推销员的信息保存到页面上的隐藏变量中,然后将其传输到“ info.php”页面通过GET或POST方法。
在每行按钮的名称后附加推销员ID,以使其对于每个推销员都是唯一的。当您单击相关的行按钮时,将当前推销员行所需的信息保存到隐藏变量中,然后使用GET或POST提交到“ info.php”作为表单提交。
示例: 如果要发送推销员ID和姓名,则可以在页面上显示2个隐藏变量,如下所示。
<input type="hidden" id="saleman_id">
<input type="hidden" id="saleman_name">
对于推销员搜索网格中每个推销员的每一行末尾的每个按钮,您可以具有以下代码:
<input type="button" id="<salesman_id>" value="more info" onclick="moreinfo.php?id=XXX&name=YYYY">
您必须在moreinfo.php中包含代码来处理要发送的变量。对于上述情况,变量是使用GET发送的,但是如果您不想显示正在发送的信息,也可以使用POST方法。