每当我点击一个按钮来更新我存储在数据库中的记录但我无法获取ID
时,我一直在尝试添加模态弹出窗口 <?php
//Open a new connection to the MySQL server
$mysqli = new mysqli('localhost','root','','pizzeria');
//Output any connection error
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
//MySqli Select Query
$results = $mysqli->query("SELECT id, navn, indeholder, pris FROM pizza");
print '<tr>';
while($row = $results->fetch_assoc()) {
print '<td>'.$row["id"].'</td>';
print '<td>'.$row["navn"].'</td>';
print '<td>'.$row["indeholder"].'</td>';
print '<td>'.$row["pris"].'</td>';
print '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#<?php echo $row['id']; ?>">Redigere</button></td>';
print '</tr>';
}
// Frees the memory associated with a result
$results->free();
// close connection
$mysqli->close();
?>
</tbody>
</table>
</div>
<div class="modal fade" id="delete-<?php echo $row['id']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Bekræft Venligst Sletning</h4>
</div>
<div class="modal-body">
Er du sikker på at du vil slette <?php echo $rows['navn']; ?>?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Luk</button>
<a href="delete.php?id=<?php echo $rows['id']; ?>" class="btn btn-info btn-sm">Slet</a>
</div>
</div>
</div>
</div>
我有什么办法可以解决它吗?
答案 0 :(得分:1)
您尝试在其定义的 while 循环之外调用$row
变量。您需要将$row
中的数组值分配给新变量你在循环中。然后,您将能够引用脚本后半部分中的值。
$id_array = array();
$nav_array = array();
$indeholder_array = array();
$pris_array = array();
while($row = $results->fetch_assoc()) {
// Save the results to our globally scoped arrays
array_push($id_array, $row["id"]);
array_push($nav_array, $row["navn"]);
array_push($indeholder_array, $row["indeholder"]);
array_push($pris_array, $row["pris"]);
echo '<td>'.$row["id"].'</td>';
echo '<td>'.$row["navn"].'</td>';
echo '<td>'.$row["indeholder"].'</td>';
echo '<td>'.$row["pris"].'</td>';
echo '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#<?php echo $row['id']; ?>">Redigere</button></td>';
echo '</tr>';
}
在上面,我在全局范围内创建了四个新数组,用于存储SELECT查询返回的每个值。
我还将print
的实例更改为echo
。生成HTML标记时,您需要使用echo
代替print
。 print
将评估您传递给它的变量,如果您使用它生成HTML,则可能会看到不稳定的结果。
现在,当您想要在脚本的后半部分中获取这些值时,您可以使用以下内容:
<div class="modal-body">
Er du sikker på at du vil slette <?php echo $nav_array[0]; ?>?
</div>
注意我在使用数组时引用的0
索引键。更改此项以匹配您希望从结果中获得的值。
答案 1 :(得分:-1)
您实际上遇到了PHP语法错误。在while循环中的第5个打印:
print '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#<?php echo $row['id']; ?>">Redigere</button></td>';
将其更改为
print '<td align="center"><button type="btn btn-default" data-toggle="modal" data-target="#'.$row['id'].'">Redigere</button></td>';