PHP变量中插入带if条件的代码输出认证图标运行异常求助
问题原因
- 语法逻辑错误:你当前的代码是在拼接
$risultato字符串的过程中,直接插入了echo语句,echo会直接将图标代码输出到页面,不会拼入$risultato变量,所以图标位置会提前出现在$risultato输出的位置之前。 - 字符串拼接断裂:你在if判断结束后,没有重新将后续的HTML内容接回
$risultato变量,导致$risultato只包含了if判断之前的内容,后续的PAO、价格等字段都没有被存入变量,自然不会显示。
修复方案
把if判断里的echo改成字符串拼接,将图标代码追加到$risultato变量,判断结束后再把后续的HTML内容继续拼入变量即可,修复后的完整代码如下:
$risultato=' <div class="container"> <!--container singolo cosmetico --> <!-- riga 1 --> <div class="row" id="libro"> <div class="column"> <!-- colonna con immagine --> <img class="card-img" src="img/Cosmetici/'.$row["immagine_cosmetici"].'" alt=""/> </div> <div class="info column"> <!-- colonna con info --> <div class="card-body"> <h2 class="card-title text-white text-center ml-4 mt-3 mb-3">'.$row["nome"].'</h2> </div> <div class="card-body" id="descrizione"> <!-- lista caratteristiche --> <ul id="dati-libro"> <li class="card-text text-white"><u>Marca:</u> '.$row["marca"].'</li> <li class="card-text text-white"><u>Tipologia di prodotto:</u> '.$row["tipologia_prodotto"].'</li> <li class="card-text text-white"><u>Certificazioni:</u> '; // 拼接图标代码到$risultato变量 if (in_array("Biological", $array_certificazioni)) { $risultato .= ' <img id="bio" src="https://image.flaticon.com/icons/png/512/3438/3438234.png" style="width:50px; height: 50px;"/> '; } if (in_array("Vegan", $array_certificazioni)) { $risultato .= ' <img id="vegan" src="https://image.flaticon.com/icons/png/512/4491/4491013.png" style="width:50px; height: 50px;"/> '; } if(in_array("Nickel Tested", $array_certificazioni)) { $risultato .= ' <img id="nickel" src="https://www.vegup.bio/wp-content/uploads/2017/01/nickel-tested-logo-e1541500088709.png" style="width:50px; height: 50px;"/> '; } if (in_array("Cruelty Free", $array_certificazioni)) { $risultato .= ' <img id="cruelty" src="https://image.flaticon.com/icons/png/512/4876/4876678.png" style="width:50px; height: 50px;"/> '; } // 继续拼接后续HTML内容 $risultato .= ' </li> <li class="card-text text-white"><u>PAO:</u> '.$row["pao"].' M</li> <li class="card-text text-white"><u>Prezzo:</u> '.$row["prezzo"].' <i class="fas fa-euro-sign"></i></li> <li class="card-text text-white"><u>Scadenza:</u> '.$row["scadenza"].'</li> <li class="card-text text-white"><u>Quantità:</u> '.$row["quantita"].'</li> <li class="card-text text-white"><u>Le tue note:</u> '.$row["note"].'</li> </ul> </div> </div> </div> '; print $risultato;
注:原代码中样式属性的
heigth为拼写错误,已统一修正为height。
内容的提问来源于stack exchange,提问作者asbarabungi
相关产品推荐
相关产品推荐

