我是php的新手,但是我正在尝试构建一个页面,在从数据库中读取内容的固有复选框之后产生,但是当使用echo打印这些格式时,它不是所需的格式,因此产生错误回程。 这是php
<?php
$conn = mysqli_connect("localhost", "username", "password", "database_name");
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$query="SELECT * FROM ingrediente";
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$name = $row["id_ingrediente"];
$value = $row["immagine"];
$etichetta = $row["nome"];
$prezzo = $row["costo_unitario"];
echo "\n";
echo "<input type='checkbox' name=$name value='$value' onchange=\"add_ing2($name,'$value','$etichetta',$prezzo,this);\">$etichetta" ;
echo "\n";
echo "<input type='number' name='$etichetta' style='border:0px; text-align:right;background:transparent; height:auto;' value=$prezzo readonly> €";
echo "\n";
echo "<br><br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
这是制作的html
<input type='checkbox' name=1 value='/images/ingredienti/pomodoro.png' onchange="add_ing2(1,'/images/ingredienti/pomodoro.png','Pomodoro',0.3,this);">Pomodoro
<input type='number' name='Pomodoro' style='border:0px; text-align:right;background:transparent; height:auto;' value=0.3 readonly> €
<br><br>
<input type='checkbox' name=2 value='/images/ingredienti/formaggio.png
' onchange="add_ing2(2,'/images/ingredienti/formaggio.png
','Formaggio',0.2,this);">Formaggio
<input type='number' name='Formaggio' style='border:0px; text-align:right;background:transparent; height:auto;' value=0.2 readonly> €
<br><br>
<input type='checkbox' name=3 value='/images/ingredienti/hamburger.png
' onchange="add_ing2(3,'/images/ingredienti/hamburger.png
','Hamburger',1,this);">Hamburger
<input type='number' name='Hamburger' style='border:0px; text-align:right;background:transparent; height:auto;' value=1 readonly> €
<br><br>
正如您所看到的,正确的打印方式仅适用于第一个元素(番茄钟(html代码中的第1行:2行))。因为这会导致我使用复选框时出现的问题不多,我可以解决这个问题吗?
非常感谢
答案 0 :(得分:0)
PHP没有任何问题 - 您从数据库中撤出的数据非常糟糕。一些图像路径最后有一个换行符。
您应该最终修复数据(验证用户输入,调整自动将其拉入的脚本等),但您可以将$app->get('/stats/getCrash/dqaid=:dqaid(/appid=:app_id(/reason=:reason(/appvid=:app_version_id(/reasonh=:reason_hash
(/brand=:brand(/model=:model(/osversion=:os_version(/portal=:portal))))))))',
function ($dqaid, $app_id = null, $reason = null, $app_version_id = null, $reason_hash = null, $brand = null,
$model = null, $os_version = null, $portal = null) use ($app) {
$app->response->setStatus(200);
$app->response->setBody(json_encode(CrashFilters::createRequest($dqaid, $app_id, $reason, $app_version_id, $reason_hash, $brand,
$model, $os_version, $portal)));
$app->response->headers->set('Content-Type', 'application/json');
});
应用于值以剥离多余的字符。
答案 1 :(得分:0)
错误的假设!你的$值似乎也在最后有一个换行符。 您可以看到图像网址后面的换行符。所以寻找一个 \ n在图像值。提示:$ value = trim($ value); [更新]修剪() 在所有使用的变量上。 - @JustOnUnderMillions
看起来你的新行有坏数据。看看吧 数据库 - 我敢打赌你会在原始数据中看到它们。你可以试试 修剪()修改值,但更好地修复底层问题。 - @ceejayoz
我将trim()应用于所有变量,它的工作原理!很多JustOnUnderMillion和ceejayox&lt; 3