【发布时间】:2014-06-28 07:31:43
【问题描述】:
我的代码在不久前就可以工作了。实际上,我已经要求测试,它仍然可以在其他电脑上运行。
我格式化了我的,安装了 eclipse、wamp 和 easyphp 以进行仔细检查和所有的东西,现在我遇到了这个问题。
这是一个简单的插入,一个带有 2 个文本框的 HTML,表存在并且它直接由 MySQL 工作台工作。
当我通过浏览器运行脚本时,我在代码中写了一些回显,它启动 ajax,调用 insert.php,并在其中回显在 require_once config.php 之前
之后就没有任何反应了。
我已经在 ajax 调用的错误部分中放置了警报状态和 thown 错误,但什么都没有。
它可能发生了什么?
我使用的是 Windows,我怀疑有更深层次的东西,但这可能是一个明显的错误,我只是不知道在哪里搜索,因为它在其他计算机上也可以。
代码如下:
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CRUD</title>
</head>
<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>
</html>
ajax 调用
$(document).ready(function(){
$('#myForm').submit(function(){
var data = $(this).serialize();
$.ajax({
url: "DAO/insert.php",
type: "POST",
data: data,
dataType: "html",
success: function( data )
{
alert( data );
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
return false;
});
});
config.php
<?php
echo "DENTRO DO CONFIG";
define('HOST', 'localhost');
define('DB_NAME', 'wms');
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
<?php
echo "FORA DO INSERT";
require_once('config.php');
if(isset($_POST['submit'])){
echo "DENTRO DO INSERT, SUBMIT POSTED";
$nome = $_POST['nome'];
$tipo = $_POST['tipo'];
$sql = 'INSERT INTO produto(id, nome, tipo, criado_em) ';
$sql .= ' VALUES (NULL, :nome, :tipo, NOW())';
try {
echo "DENTRO DO 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 insercao de dados";
}
} catch (Exception $e) {
echo $e->getMessage();
}
die();
}
?>
【问题讨论】:
-
请显示一些代码 - 否则无法提供帮助。
-
@Luke Peterson 你去!
-
你在你的 console.log() 中看到了什么吗?尝试删除 try/catch 块 - 那么它有效吗?
-
@bestprogrammerintheworld 我删除了代码中的所有尝试/捕获,而萤火虫没有告诉我任何事情。我只是在require_once之前得到回声,这个:echo "FORA DO INSERT";
标签: php mysql ajax insert config