我打了幾天牆壁,似乎無法解決這個簡單的問題。通過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中。 –