Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax、json_编码和数据库的PHP4问题_Javascript_Ajax_Json_Php4 - Fatal编程技术网

Javascript Ajax、json_编码和数据库的PHP4问题

Javascript Ajax、json_编码和数据库的PHP4问题,javascript,ajax,json,php4,Javascript,Ajax,Json,Php4,我有我的公司项目,他们需要PHP4开发。请检查完整的代码。它应该显示移动品牌和价格的列表,并且应该根据多个复选框进行过滤。由于我必须在PHP4中工作,我不知道我犯了什么错误。它没有显示数据库中的信息 index.php <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>AJAX filter demo</tit

我有我的公司项目,他们需要PHP4开发。请检查完整的代码。它应该显示移动品牌和价格的列表,并且应该根据多个复选框进行过滤。由于我必须在PHP4中工作,我不知道我犯了什么错误。它没有显示数据库中的信息

index.php

<!DOCTYPE HTML>
    <html>
      <head>
        <meta charset="utf-8">
        <title>AJAX filter demo</title>
        <style>
          body {
            padding: 10px;
          }

          h1 {
              margin: 0 0 0.5em 0;
              color: #343434;
              font-weight: normal;
              font-family: 'Ultra', sans-serif;   
              font-size: 36px;
              line-height: 42px;
              text-transform: uppercase;
              text-shadow: 0 2px white, 0 3px #777;
          }

          h2 {
              margin: 1em 0 0.3em 0;
              color: #343434;
              font-weight: normal;
              font-size: 30px;
              line-height: 40px;
              font-family: 'Orienta', sans-serif;
          }

          #phones {
            font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
            font-size: 12px;
            background: #fff;
            margin: 15px 25px 0 0;
            border-collapse: collapse;
            text-align: center;
            float: left;
            width: 300px;
          }

          #phones th {
            font-size: 14px;
            font-weight: normal;
            color: #039;
            padding: 10px 8px;
            border-bottom: 2px solid #6678b1;
          }

          #phones td {
            border-bottom: 1px solid #ccc;
            color: #669;
            padding: 8px 10px;
          }

          #phones tbody tr:hover td {
            color: #009;
          }

          #filter {
            float:left;
          }
        </style>
      </head>
      <body> 
        <h1>Phones database</h1>

        <table id="phones">
          <thead>
            <tr>
              <th>ID</th>
              <th>Brand</th>
              <th>Model</th>
              <th>Price</th>
            </tr>
          </thead>
          <tbody>
          </tbody>
        </table>

        <div id="filter">
          <h2>Filter options</h2>
          <div>
            <input type="checkbox" id="Samsung" checked>
            <label for="Samsung">Samsung</label>
          </div>
          <div>
            <input type="checkbox" id="iPhone" checked>
            <label for="iPhone">iPhone</label>
          </div>
          <div>
            <input type="checkbox" id="HTC" checked>
            <label for="HTC">HTC</label>
          </div>
          <div>
            <input type="checkbox" id="LG" checked>
            <label for="LG">LG</label>
          </div>
          <div>
            <input type="checkbox" id="Nokia" checked>
            <label for="Nokia">Nokia</label>
          </div>
        </div>

        <script src="http://code.jquery.com/jquery-latest.js"></script> 
        <script>
          function makeTable(data){
            console.log(data);
           var tbl_body = "";
              $.each(data, function() {
                var tbl_row = "";
                $.each(this, function(k , v) {
                  tbl_row += "<td>"+v+"</td>";
                })
                tbl_body += "<tr>"+tbl_row+"</tr>";
              })

            return tbl_body;
          }

          function getPhoneFilterOptions(){
            var opts = [];
            $checkboxes.each(function(){
              if(this.checked){
                opts.push(this.id);
              }
            });

            return opts;
          }

          function updatePhones(opts){
            $.ajax({
              type: "POST",
              url: "submit.php",
              dataType : 'json',
              cache: false,
              data: {filterOpts: opts},
              success: function(records){
                $('#phones tbody').html(makeTable(records));
              }
            });
          }

          var $checkboxes = $("input:checkbox");
          $checkboxes.on("change", function(){
            var opts = getPhoneFilterOptions();
            updatePhones(opts);
          });

          $checkboxes.trigger("change");
        </script> 
      </body> 
    </html>

AJAX过滤器演示
身体{
填充:10px;
}
h1{
保证金:0.5em0;
颜色:#3434;
字体大小:正常;
字体系列:“Ultra”,无衬线;
字体大小:36px;
线高:42px;
文本转换:大写;
文本阴影:0 2px白色,0 3px#777;
}
氢{
利润率:1em 0.3em 0;
颜色:#3434;
字体大小:正常;
字体大小:30px;
线高:40px;
字体系列:“东方”,无衬线;
}
#电话{
字体系列:“Lucida Sans Unicode”,“Lucida Grande”,无衬线;
字体大小:12px;
背景:#fff;
利润率:15px25px0;
边界塌陷:塌陷;
文本对齐:居中;
浮动:左;
宽度:300px;
}
#电话th{
字体大小:14px;
字体大小:正常;
颜色:#039;
填充:10px 8px;
边框底部:2个实心#6678b1;
}
#电话td{
边框底部:1px实心#ccc;
颜色:#669;
填充:8px 10px;
}
#电话tbody tr:hover td{
颜色:#009;
}
#滤器{
浮动:左;
}
电话数据库
身份证件
品牌
模型
价格
过滤器选项
三星
苹果手机
宏达电
LG
诺基亚
函数makeTable(数据){
控制台日志(数据);
var tbl_body=“”;
$.each(数据,函数(){
var tbl_row=“”;
$。每个(此,函数(k,v){
tbl_行+=“+v+”;
})
tbl_正文+=“”+tbl_行+“”;
})
返回tbl_体;
}
函数getPhoneFilterOptions(){
var opts=[];
$复选框。每个(函数(){
如果(选中此项){
选择推送(this.id);
}
});
返回选项;
}
函数更新电话(opts){
$.ajax({
类型:“POST”,
url:“submit.php”,
数据类型:“json”,
cache:false,
数据:{filterOpts:opts},
成功:功能(记录){
$('#phones tbody').html(makeTable(records));
}
});
}
var$复选框=$(“输入:复选框”);
$checkbox.on(“更改”,函数(){
var opts=getPhoneFilterOptions();
更新电话(opts);
});
$checkbox.trigger(“变更”);
submit.php

<?php 
require 'Database.php';
#### TEMP SET NAMES FÜR UTF8 ###################################################
require_once('Json.php');

  $opts = $_POST['filterOpts'];
  foreach ($opts as &$opt) {
      $opt = sprintf("'%s'", mysql_real_escape_string($opt));
  }
  $query = sprintf(
      "SELECT mobile_phone.id, name, model, price
       FROM mobile_phone
       INNER JOIN brand ON brand_id = brand.id
       WHERE name IN (%s)",
      join(',', $opts)
  );

  $result = mysql_query($query);
  $data   = array();
  while ($row = mysql_fetch_assoc($result)) {
      $data[] = $row;
  }

  echo json_encode($data);
?>

PHP4中未包含json_编码或json_解码函数,请使用PHP4 json操作库

PS:您已经包含了
Json.php
,库中没有
Json.*
函数,
Json.php
文件有
Services\u Json
类,请使用这种方式

$jsonObj = new Services_JSON();
echo $jsonObj->encode($data);

您好,您的意思是我不应该在submit.php文件中包含Json.php文件并使用上面的代码行?谢谢。您好,我尝试删除了Json.php文件,包括您给我的上述代码行,但仍然没有获得数据。@user3659737
Json.php
文件有Json操作方法,例如编码、解码,请创建
Services\u Json
类的对象并按对象调用方法。,我在文章中提到了示例代码bottom@user3659737你得到了什么ajax响应,你能和我分享吗?嗨,我得到了复选框过滤选项,只是一个没有任何数据库数据的表。唯一的问题是我没有从数据库中获取数据。否则,我想我的复选框会在我从数据库中获取数据后过滤数据。