尝试使用 foreach 创建具有 php 的动态 html 元素时出错
Error while trying to create dynamic html elements with php using foreach
当我尝试使用 PHP 在 HTML 中动态创建一些框时,出现以下错误:
Invalid argument supplied for foreach()
这是我的代码:
<?php
$sql = 'call getservers()';
$retval = mysqli_query( $conn,$sql );
if(! $retval ) {
die('Could not get data.');
}
while($row = mysqli_fetch_array($retval)) {
$server_array = $row['result'];
}
foreach($server_array as $value) {
echo <<<HEREDOC
<div class="card card-custom">
<div class="card-header">
<div class="card-title">
<span class="card-icon">
<i class="fas fa-server text-primary text-primary"></i>
</span>
<h3 class="card-label">Server 1
<small>192.168.1.1</small></h3>
</div>
<div class="card-toolbar">
<a href="#" class="btn btn-sm btn-icon btn-light-danger mr-2">
<i class="flaticon2-drop"></i>
</a>
<a href="#" class="btn btn-sm btn-icon btn-light-success mr-2">
<i class="flaticon2-gear"></i>
</a>
<a href="#" class="btn btn-sm btn-icon btn-light-primary">
<i class="flaticon2-bell-2"></i>
</a>
</div>
</div>
<div class="card-body">No Description Given.</div>
</div>
HEREDOC;
}
?>
(MySql正确查询returnsJSON数组)
我们将不胜感激。
您应该 json_decode($server_array, true)
获得一个可以循环访问的关联数组。
即
<?php
$server_array = '[{"server_name": "Test Server 1", "server_ip": "192.168.1.2", "server_hostname": "testserver1.example.com"},{"server_name": "Test Server 2", "server_ip": "192.169.1.105", "server_hostname": "testserver2.example.com"}]';
$server_array = json_decode($server_array, true);
foreach($server_array as $value) {
foreach($value as $item) {
echo <<<HEREDOC
$item;
HEREDOC;
}
}
输出
Test Server 1; 192.168.1.2; testserver1.example.com; Test Server 2; 192.169.1.105; testserver2.example.com;
工作demo
当我尝试使用 PHP 在 HTML 中动态创建一些框时,出现以下错误:
Invalid argument supplied for foreach()
这是我的代码:
<?php
$sql = 'call getservers()';
$retval = mysqli_query( $conn,$sql );
if(! $retval ) {
die('Could not get data.');
}
while($row = mysqli_fetch_array($retval)) {
$server_array = $row['result'];
}
foreach($server_array as $value) {
echo <<<HEREDOC
<div class="card card-custom">
<div class="card-header">
<div class="card-title">
<span class="card-icon">
<i class="fas fa-server text-primary text-primary"></i>
</span>
<h3 class="card-label">Server 1
<small>192.168.1.1</small></h3>
</div>
<div class="card-toolbar">
<a href="#" class="btn btn-sm btn-icon btn-light-danger mr-2">
<i class="flaticon2-drop"></i>
</a>
<a href="#" class="btn btn-sm btn-icon btn-light-success mr-2">
<i class="flaticon2-gear"></i>
</a>
<a href="#" class="btn btn-sm btn-icon btn-light-primary">
<i class="flaticon2-bell-2"></i>
</a>
</div>
</div>
<div class="card-body">No Description Given.</div>
</div>
HEREDOC;
}
?>
(MySql正确查询returnsJSON数组)
我们将不胜感激。
您应该 json_decode($server_array, true)
获得一个可以循环访问的关联数组。
即
<?php
$server_array = '[{"server_name": "Test Server 1", "server_ip": "192.168.1.2", "server_hostname": "testserver1.example.com"},{"server_name": "Test Server 2", "server_ip": "192.169.1.105", "server_hostname": "testserver2.example.com"}]';
$server_array = json_decode($server_array, true);
foreach($server_array as $value) {
foreach($value as $item) {
echo <<<HEREDOC
$item;
HEREDOC;
}
}
输出
Test Server 1; 192.168.1.2; testserver1.example.com; Test Server 2; 192.169.1.105; testserver2.example.com;
工作demo