如何使用ajax的json_encode从数据库中获取数据

时间:2017-09-12 01:44:10

标签: javascript php jquery ajax

我使用ajax从DB获取数据。我在成功函数中选择了alert(valData)来测试数据,但不幸的是没有任何回报 阿贾克斯。然后我测试了

select contact from IDC WHERE id='5';

它在mysql cmd行中运行良好。

这是我的js代码:

var stNum = 5;
$.ajax({
        dataType:'json',
        type:"POST",
        url:"get_ajax_csc.php",
        data:{stNum:stNum},
        success:function(data) 
        {
         var valData = data;
         alert(valData);
         $('#stContact').val(data.stCnt);
         $('#stPhone').val(data.stPho);
        }
      });

这是我的HTML代码:

<div class="divFir">
    <label>Contact:</label><input type="text" id="stContact" ><br />
    <label>Phone:</label><input type="text" id="stPhone" ><br />
</div>

这是get_ajax_csc.php代码:

<?php
if(isset($_POST['stNum']))
{   
 include("DB.php"); 
 $q=$_POST["stNum"];
 $sql="select contact,phone from IDC WHERE id='".$q."';";
 $sel = $conn->query($sql); 

 $arr = $sel->fetch(PDO::FETCH_ASSOC);
 $tmpArr = array(
    'stCnt'=>$arr['contace'],
    'stPho'=>$arr['phone']
    );
 echo json_encode($tmpArr);
 }

 if(isset($_POST['htmlCnt']))
{   
include("DB.php");
$htcnt=stripslashes(".$_POST['htmlCnt'].");
........
}
 ?>

这是DB.php代码:

<?php
session_start();
$pwd=$_SESSION['password'];
$user=$_SESSION['user'];

try 
{
  $conn = new PDO('mysql:host=x.x.x.x;port=3306;dbname=hpc',$user,$pwd);
}
catch (PDOException $e)
{
  echo "account or pwd wrong <meta http-equiv='refresh' content='1;url=index.html'>";
    exit;
}  
$conn->setAttribute(PDO::ATTR_ORACLE_NULLS, true);
?>

我的代码似乎没有错,但我无法从数据库中获取数据

我发现striplashes()使ajax什么也没有返回。当我屏蔽这个方法(// stripslashes())时,它工作正常。为什么striplashes会影响我的ajax返回数据?

1 个答案:

答案 0 :(得分:0)

我发现:

$htcnt=stripslashes(".$_POST['htmlCnt'].");

更改为:

$htcnt=stripslashes($_POST['htmlCnt']);