用红色标记列中的0数字

时间:2017-07-19 14:18:56

标签: javascript php css

我有一个fruit.html:

<html>
<body>
<script>// Script To Request Fruit 
  function qCat() {
          xmlhttp = new XMLHttpRequest();
          xmlhttp.onreadystatechange = function() {
              if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
  				document.getElementById("ajax1").innerHTML = xmlhttp.responseText;													
				}
          	}
          xmlhttp.open("GET","fruit.php",true);
          xmlhttp.send();
      				 }
</script>

 <button onClick="qCat()">Fruit</button> 
 <div id="ajax1"></div>

</body>
</html>

然后我有fruit.php:

<?php

$con = mysqli_connect('localhost','root','root','farm');
if (!$con) {die('Could not connect: ' . mysqli_error($con));}
mysqli_select_db($con,"farm");

$sql = "SELECT item, qty, price FROM fruit";

echo"<table >
		<tr><th>No</th><th>Item</th><th>QTY</th><th>Price</th></tr>";

$i=0;
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
$i++;
echo "<tr><td>" .$i. "</td>
			<td>" . $row['item']."</td>			  
			<td>" . $row['qty']."</td>
			<td>" . $row['price']."</td></tr>";
}
echo "</table>";
mysqli_close($con);

?>

当我点击按钮时,它成功返回了表格:

No  Item    QTY Price
1   Apple   0   9
2   Grape   9   7
3   Banana  3   9
4   Orange  0   9

现在,我想用红色将QTY列中的'0'数字着色。 QTY将随时改变取决于输入,但是当它为0时,它将在AJAX返回中变为红色。非'0'号码将始终为黑色。 (这只是一个有效的简单示例,但我的真实数据库超过1000行..)

请建议。感谢。

5 个答案:

答案 0 :(得分:3)

我只想添加样式变量。

&#13;
&#13;
'
&#13;
&#13;
&#13;

答案 1 :(得分:1)

快速解决方法是在QTY为0时添加内联样式。

echo '<td style="color: '.($row['qty'] == 0)?'red':'black'.'">'.$row['qty'].'</td>';

但这不是公认的做法。检查时添加一个类,然后在fruit.html页面上添加

<style> .zeroclass { color: "red" }

答案 2 :(得分:0)

最简单的是

$red = ($row['qty']) ? '' : 'red';
echo "<tr><td>" .$i. "</td>
            <td>" . $row['item']."</td>           
            <td class=\"" . $red."\">" . $row['qty']."</td>
            <td>" . $row['price']."</td></tr>";
}

然后定义 td.red { color: #f00; } 在你的CSS中

<强>加入

$red = ($row['qty']) ? '' : 'red';

的简写代码
if($row['qty']) { 
  $red = '';
} else {
  $red = 'red';
}

答案 3 :(得分:0)

将类赋予行“tr”elem所以如果你想用背景突出显示或给它的DOM赋予颜色,将由css照顾。

$red = ($row['qty']) ? '' : 'red';
echo "<tr class=\"" . $red."\">"<td>" .$i. "</td>
            <td>" . $row['item']."</td>           
            <td>" . $row['qty']."</td>
            <td>" . $row['price']."</td></tr>";
}

并在CSS中:

table tr.red {
  background: red;
}

答案 4 :(得分:0)

最后我自己解决了这个问题:

添加任何字符,说&#39; k&#39;

&#13;
&#13;
<?php

$con = mysqli_connect('localhost','root','root','farm');
if (!$con) {die('Could not connect: ' . mysqli_error($con));}
mysqli_select_db($con,"farm");

$sql = "SELECT item, qty, price FROM fruit";

echo"<table >
		<tr><th>No</th><th>Item</th><th>QTY</th><th>Price</th></tr>";



$i=0;
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
$i++;
echo "<tr><td>" .$i. "</td>
			<td>" . $row['item']."</td>			  
			<td class='k" . $row['qty']."'>" . $row['qty']."</td>
			<td>" . $row['price']."</td></tr>";
}
echo "</table>";
mysqli_close($con);

?>
&#13;
&#13;
&#13;

然后用CSS控制:

.k0 {
Color: Red;}

确实有效。