我正在尝试使用ajax和php将简单的用户输入文本从输入框上传到mysql数据库。其思想是,按下“显示”键后,可以从数据库检索文本并显示在页面上。
关于我在这里要实现的一个想法是HTML:
数据库和表“jottings”已经创建。单击“提交”时,将执行此javascript:
function newjotting()
{ var newjot = document.getElementById("newjotting").value ;
var jotURL = "line=" + newjot ;
Ajax("POST", jotURL, "api/addjot.php", function(data){});
document.getElementById("newjotting").value = "" ;
}
document.getElementById("submit").addEventListener("click", function(data){ newjotting();});
使用此Ajax函数:
function Ajax(method, value, URL, callback)
{ var ajaxObj = new XMLHttpRequest();
ajaxObj.open(method, URL, true);
if (method == "POST")
{ ajaxObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); } ;
ajaxObj.onreadystatechange = function()
{ if (ajaxObj.status == 200)
if (ajaxObj.readyState == 4)
callback(ajaxObj.responseText);
};
ajaxObj.send(value);
}
它应该发送给这个php:
$hostname = "localhost" ;
$username = "root" ;
$password = "" ;
$option = array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION) ;
$_DB = new PDO("mysql:host=$hostname;dbname=ds6", $username, $password, $option) ;
try {
$newjotting = $_POST["line"] ;
$q = "INSERT INTO jottings( jotting) VALUES (:newjot)" ;
$query = $_DB->prepare($q) ;
$query->bindValue(":newjot", $newjotting);
$query->execute();
$_DB = null
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>
我用php做了很多修改,但都没有成功。我开始认为这可能是Ajax的一个问题,但我不确定该尝试什么。在别人问之前,我不应该使用jQuery。任何帮助都将不胜感激。
最佳答案
问题解决了。我相信这是因为我需要执行$q而不是$query。总是小事。。。