我正在尝试使用php从MySQL数据库中读取一些信息,然后将结果传递给jquery并将其记录在控制台中。
要从数据库中读取,我使用:
public function getQuestions(){
$query = 'SELECT * FROM Question';
$statement = $this->db->prepare($query);
$statement->execute();
$questions = [];
while($row = $statement->fetch()){
$questions[] = array(
'QuestionID' => $row['QuestionID'],
'Content' => $row['QuestionContent']
);
}
return $questions;
}
其中$this->db
是PDO对象。
然后从
调用此方法<?php
include_once 'classes/DatabaseAdapter.php';
$dba = new DatabaseAdapter();
echo $dba->getQuestions(); // Array to String conversion error.
然后从jQuery调用它:
$.ajax({
url: 'questions.php',
method: 'post'
}).done(function(data){
console.log('done');
console.log(data);
});
我遇到的问题是当我使用json_encode()
在PHP中将输出编码为json时,我在控制台中得到一个空字符串,并使用JSON.parse()
在jQuery中对其进行解码。然后我尝试在没有编码的情况下传递它,并在PHP行中使用echo
获得通知说Array to String转换。
答案 0 :(得分:0)
试试这个。
echo json_encode($dba->getQuestions());
exit;
答案 1 :(得分:0)
试试这种方式。您可以将代码调整为getQuestions()
函数
Php代码
//PDO connection
$host = "";
$user = "";
$dbname = "";
$pass = "";
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
}
//PDO Database query and Json encode
$STH = $DBH->prepare("SELECT * FROM Question");
$STH->execute();
$result = $STH->fetchAll();
$data = array();
$data['items'] = $result;
echo json_encode($data);
<强> Jquery的强>
//$.getJSON is a shorthand Ajax function
$.getJSON("questions.php", function(data) {
console.log(data);
$.each(data.items, function(i, value){
console.log(value.thecolumnnameinmysqltable);
})
})
在Php im中创建一个数组,目的是你可以添加额外的数据并检索它.eg
$data = array();
$data['data'] = array("one", "two", "three", "four");
$data['items'] = $result;
echo json_encode($data);
并在Jquery中检索$ data [&#39; data&#39;]数组
var one = data.data[0];
var two = data.data[1];
var three = data.data[2];
var four = data.data[3];
Getjson信息 - http://api.jquery.com/jquery.getjson/