【问题标题】:Why php if else is not working with JSON data为什么 php if else 不能处理 JSON 数据
【发布时间】:2015-02-22 22:28:41
【问题描述】:

我正在从我的数据库中以 JSON 数组的形式获取信息。问题是我无法使用这些数据来比较使用 if else 或分配给 PHP 变量。

查询:

$query="select * from dmo";

$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

$arr = array();
if($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $arr[] = $row;  
    }
}
# JSON-encode the response
$json_response = json_encode($arr);

// # Return the response
echo $json_response;

数据:

<tr ng-repeat="data in filtered = (list | filter:search | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit">
                    <td>{{data.tran_id}}</td>
                    <td>{{data.tran_type}}</td>
                    <td>{{data.sender}}</td>
                    <td>{{data.amount}}</td>
                    <td>{{data.fee}}</td>
                    <td>{{data.date}}</td>
                    <td>
                    <?php $s="{{data.status}}"; if ($s == "0")
                    echo"Pending"; 
                    else if ($s == "1") echo"Completed"; 
                    ?>
                    </td>


                </tr>

【问题讨论】:

  • 例如 {{data.amount}} 看起来像 20 或存储在我的数据库中的东西!
  • 你是在混合 php 和 javascript 吗??
  • 如果其他方法也不起作用,则正常!为什么投反对票??
  • 角度模板不是这样工作的。你可以试试这个{{ data.status == 1 ? "Too young" : "Old enough" }}
  • 你也在这里使用 Angular 吗?如果是这样,请记住 Angular 在浏览器中通过 JavaScript 执行操作,而 PHP 在服务器中执行操作。因此,您的 PHP if 语句在页面首次呈现时已被处理,并且该位不会改变。我的猜测是你需要为你想做的事情找到一个 Angular 指令。如果您需要来自服务器的动态信息,它也支持 AJAX 操作。

标签: php json


【解决方案1】:

您还没有告诉我们您的模板引擎是如何工作的或它是哪一个,但从您的问题中可以清楚地看出它不是经过预处理的 PHP。您不能只是混合这样的技术并期望它起作用。

阅读有关如何调用 PHP、其结果是什么、该结果如何传输到浏览器以及该浏览器如何解释接收到的内容的信息;你会发现你写的东西没有任何意义。

您使用的模板引擎很可能有自己的条件语法。例如,在 AngularJS 中你会这样写:

{{data.status == 1 ? "Too young" : "Old enough"}}

仔细阅读您使用的技术的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2014-02-17
    • 2021-04-15
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多