ALERT,搜索时在mysql数据库中找不到单词

时间:2017-03-03 05:49:27

标签: javascript php jquery mysql

我的编码完全是关于

1)从mysql thro php

中获取数据

2)使用PHP URL根据输入从php获取数据到d3 我想在mysql数据库中找不到输入字段中的文本时设置警报..

现在当我尝试使用mysql数据以外的单词时,它会显示

此控制台

enter image description here

如果提交了错误的单词(除了mysql数据库值),我该怎么警告

HTML表格

      <form name="editorForm"> 
      <input type="text"name="editor"  id="editor" 
      onchange="document.getElementById('editorForm').submit();">
      <input type="submit"value="butn">
      </form>

JQUERY基于URL从PHP获取数据

       $(function () {
       $('form').submit(function (e) {
       e.preventDefault();
       var t=$('form').serialize();
       var u='http://localhost:8888/saff/indexi.php?'+t;
       if(u==null){
        alert("not found");
        }
        else{           
        funn();
         }

D3代码

        function funn(){
         d3.json(u, function(treeData) {
           //D3 CODES
             });
              } 

我的PHP代码

            <?php
            $con=mysqli_connect("localhost","root","admin","data");       

            if (mysqli_connect_errno())                
              {
              echo "Failed to connect to MySQL: " . mysqli_connect_error();
              }
               $name=$_GET['editor'];
             $sql="SELECT * FROM phptab where value LIKE '%".$name."%'";
            $r = mysqli_query($con,$sql);
                    $data = array();

                    while($row = mysqli_fetch_assoc($r)) {
                      $data[] = $row;
                    }

             function buildtree($src_arr, $parent_id = 0, $tree = array())
            {
                foreach($src_arr as $idx => $row)
                {
                    if($row['parent'] == $parent_id)
                    {
                        foreach($row as $k => $v)
                            $tree[$row['id']][$k] = $v;
                        unset($src_arr[$idx]);
            $tree[$row['id']]['children'] = buildtree($src_arr, $row['id']);
                    }
                }
                ksort($tree);
                return $tree;
            }

            function insertIntoNestedArray(&$array, $searchItem){

                if($searchItem['parent'] == 0){
                    array_push($array, $searchItem);
                    return;
                }
                if(empty($array)){ return; }
             array_walk($array, function(&$item, $key, $searchItem){
                if($item['id'] == $searchItem['parent']){
                        array_push($item['children'], $searchItem);
                        return;
                    }
                    insertIntoNestedArray($item['children'], $searchItem);
            }, $searchItem);
            }
            $nestedArray = array();
            foreach($data as $itemData){
             //$nestedArrayItem['value'] = $itemData['value'];
              $nestedArrayItem['id'] = $itemData['id'];
                $nestedArrayItem['name'] = $itemData['name'];
                $nestedArrayItem['parent'] = $itemData['parent'];
              $nestedArrayItem['tooltip'] = $itemData['tooltip'];
                 $nestedArrayItem['color'] = $itemData['color'];
                 $nestedArrayItem['level'] = $itemData['level'];

                $nestedArrayItem['children'] = array();
            //$data[]=$dat;
                insertIntoNestedArray($nestedArray, $nestedArrayItem);
            }
            header('Content-Type: application/json');

            $json= json_encode($nestedArray,JSON_UNESCAPED_UNICODE);
            echo $json = substr($json, 1, -1);
               ?>
当数据库中存在使用的单词时,

按预期工作 和page looks like this  在mozilla控制台中获得正确的json格式。但是页面中没有显示设计...但是在chrome中,一切正常......

1 个答案:

答案 0 :(得分:0)

您需要在d3

的json函数中测试页面是否为空
 function funn(){
         d3.json(u, function(treeData) {
            if(!treeData.length){
              alert("not found");
            }else {
           //D3 CODES
            }
           });
          } 

确保在找不到时从页面返回空对象