为什么命令echo php打印线条html?

时间:2017-04-28 14:58:54

标签: php html echo carriage-return

我是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行))。因为这会导致我使用复选框时出现的问题不多,我可以解决这个问题吗?

非常感谢

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