我打了几天墙壁,似乎无法解决这个简单的问题。通过AJAX插入PHP PDO
我想通过ajax做一个简单的插入。由于我是PHP的新手,我见过很多例子,阅读POST和http和php的东西,阅读te jquery.ajax文档,并且我也知道PDO文档。 仍然无法找到它不工作的原因。
这里去的代码,很简单:
指数
<body>
<form id="myForm" method="post" action="" >
Nome:
<input type="text" name="nome" required />
<br/>
Tipo:
<input type="text" name="tipo" required />
<br/>
<input type="submit" name="submit" value="save" id="sub"/>
</form>
<script src="script/jquery-2.1.0.js" type="text/javascript"></script>
<script src="script/ajaxInclude.js" type="text/javascript"></script>
</body>
Ajax调用
$(document).ready(function(){
$('#myForm').submit(function(){
var data = $(this).serialize();
$.ajax({
url: "DAO/insert.php",
type: "POST",
data: data,
success: function(data)
{
alert(data);
},
error: function(){
alert('ERRO');
}
});
return false;
});
});
配置:
<?php
define('HOST', '127.0.0.1');
define('DB_NAME','test');
define('PORT', '3306');
define('USER','root');
define('PASS','');
$dsn = 'mysql:host='.HOST.'; port='.PORT.'; dbname='.DB_NAME;
try {
$bd = new PDO($dsn, USER, PASS);
// $bd->setAttribute(PDO::ATT_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Houve algum erro no Banco de Dados';
}
?>
插入:
<?php
require_once('config.php');
if(isset($_POST['submit'])){
$nome = $_POST['nome'];
$tipo = $_POST['tipo'];
$sql = 'INSERT INTO produto(id, nome, tipo, criado_em) ';
$sql .= ' VALUES (NULL, :nome, :tipo, NOW())';
try {
$query = $bd->prepare($sql);
$query->bindValue(':nome', $nome, PDO::PARAM_STR);
$query->bindValue(':tipo', $tipo, PDO::PARAM_STR);
if($query->execute()){
echo "Dados inseridos com sucesso";
}else{
echo "Falha na inser��o de dados";
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
?>
我已经改变了它一百万次,仍然,我甚至不能从插入返回,我只是从ajax的成功获得警报。
对不起,这么简单的问题,但我有一些不好的时间。我试图用我找到的最佳实践来做所有事情,但还没有找到一个可靠的例子。
首先你必须明白,没有像“通过AJAX插入PHP PDO”**这样的东西。它可以是AJAX或PDO。他们从不干涉。因此,首先决定您的问题属于哪个领域 –
您应该在您的Javascript控制台中看到错误。你在Javascript中使用'$ _POST',但这是一个PHP超全球化。它不存在于Javascript/jQuery中。 –