我是Ajax请求的初学者,我坚持这样做:我想在每个按键的数据库中保存textarea。
的JavaScript
$("#note_content").bind("keydown", function() {
note(this.value)
});
function note(value) {
$.ajax({
async : false,
type: "GET",
url: "./ajax.php",
data: {
'block' : 'note',
'text' : value
},
success: function(data) {
$("#note_content").html(html);
}
});
}
PHP
<?php
header('Content-type: text/html; charset=utf-8');
function note() {
$bdd = new PDO('mysql:host=localhost;dbname="myDatabase";charset=utf8', 'root', 'password');
$req = $bdd->prepare('UPDATE note set text= ?');
$req->execute(array($_GET['text']);
$reponse = $bdd->('SELECT text FROM note');
$donnees = $reponse->fetch();
$text = $donnees;
return($text)
}
if(($_GET['block'] == 'note'){
echo note();
}
?>
使用JQuery我正在收听textarea的keypress。当发生时,它传递按下的键,函数note()
将参数传递给PHP。它将文本保存在表note
中并返回存储的文本。
我收到错误500(内部服务器错误),我不知道我的代码有什么问题。
也许关于header('Content-type: text/html; charset=utf-8');
需要json
内容类型?
知道我做错了吗?
答案 0 :(得分:0)
在ajax相关的API中,你需要让javascript输出可读,并且需要将error_reporting设置为0,这样就可以打印出纯JSON输出,你可以轻松地读取它...你可以这样做...... < / p>
<?php
header('Content-type: application/json; charset=utf-8');
function note() {
$bdd = new PDO('mysql:host=localhost;dbname="myDatabase";charset=utf8', 'root', 'password');
$req = $bdd->prepare('UPDATE note set text= ?');
$req->execute(array($_GET['text']);
$reponse = $bdd->('SELECT text FROM note');
$donnees = $reponse->fetch();
$text = $donnees;
return($text)
}
if(($_GET['block'] == 'note'){
$output = array();
$output['status'] = true;
$output['error'] = 'no errors';
$output['data'] = note();
echo json_encode($output);
}else{
$output = array();
$output['status'] = false;
$output['error'] = 'block is not note';
echo json_encode($output);
}
?>
在javascript中你可以检查它......
success: function(data) {
$("#note_content").html(data['data']);
}