我试图将少量html
代码和php
代码压缩成一个字符串。 (然后将字符串传递回ajax回调,ajax打印字符串)。
这是我的代码。
$sql = "SELECT * FROM pfilter WHERE id = '$getId'";
$result = mysql_query($sql);
while ($myrow = mysql_fetch_array($result)){
$output_string = '<table>';
$output_string .= '<tr><td>Make</td><td>'.$myrow['make'].'</td></tr>
<tr><td>Model</td><td>'.$myrow['model'].'</td></tr>
<tr><td>Series</td><td>'.$myrow['series'].'</td></tr>
<tr><td>Years</td><td>'.$myrow['years'].'</td></tr></table>';
但我想检查$myrow['make']
是否有任何值,如果有,则打印整个tr
。否则它应该跳过整个tr
。什么是检查这个的最好方法?我尝试使用if else
将'. .'
放在该字符串中,但没有成功。我是否必须在$output_string .=
之间反复使用ifelse
?我是PHP的新手,我很高兴,如果你们可以帮助我在这里。
答案 0 :(得分:2)
您可以将长度操作与三元运算符组合使用。
$output_string .= (strlen($myrow['make']) > 0 ? '<tr><td>Make</td><td>'.$myrow['make'].'</td></tr>' : '');
您只是检查字符串是否有任何长度,如果是,则返回整行的值。如果没有,返回一个空字符串。您可以在此处阅读有关三元运算符的更多信息:http://php.net/manual/en/language.operators.comparison.php
答案 1 :(得分:0)
使用三元运算符:
'text' . (strpos($myrow['make'], 'foo') !== FALSE ? '<tr>...</tr>' : '') . 'more text'
答案 2 :(得分:0)
“。=”运算符将字符串连接在一起。
此:
$output_string = '<table>';
$output_string .= '<tr><td>Make</td><td>'.$myrow['make'].'</td></tr>
<tr><td>Model</td><td>'.$myrow['model'].'</td></tr>
<tr><td>Series</td><td>'.$myrow['series'].'</td></tr>
<tr><td>Years</td><td>'.$myrow['years'].'</td></tr></table>';
相当于:
$output_string = '<table>';
$output_string .= '<tr><td>Make</td><td>'.$myrow['make'].'</td></tr>';
$output_string .= '<tr><td>Model</td><td>'.$myrow['model'].'</td></tr>';
$output_string .= '<tr><td>Series</td><td>'.$myrow['series'].'</td></tr>';
$output_string .= '<tr><td>Years</td><td>'.$myrow['years'].'</td></tr></table>';
所以把你的逻辑放在这样:
$output_string = '<table>';
if (@$myrow['make']) {
$output_string .= '<tr><td>Make</td><td>'.$myrow['make'].'</td></tr>';
}
$output_string .= '<tr><td>Model</td><td>'.$myrow['model'].'</td></tr>';
$output_string .= '<tr><td>Series</td><td>'.$myrow['series'].'</td></tr>';
$output_string .= '<tr><td>Years</td><td>'.$myrow['years'].'</td></tr></table>';
答案 3 :(得分:0)
是的!您可以在字符串中使用三元运算符。所以,在这里:
$output_string .= (!empty($myrow['make'])?'<tr><td>Make</td><td>'.$myrow['make'].'</td></tr>
: '' )
<tr><td>Model</td><td>'.$myrow['model'].'</td></tr>
<tr><td>Series</td><td>'.$myrow['series'].'</td></tr>
<tr><td>Years</td><td>'.$myrow['years'].'</td></tr></table>';
用括号括起条件就可以了。