我在这里遇到了一些问题,我不知道这段代码有什么问题。我很确定它是客户端,因为我没有得到任何PHP错误,但我可能错了。
我正在尝试获取一个表单,一旦提交,就可以通过对PHP文件的AJAX请求将文本字段中包含的信息插入到MySQL数据库中。
这是我在的地方:
/* index.php */
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="scripts/ajax.js"></script>
//...
<div class="success" id="success"></div>
<div class="err" id="err"></div>
<!--Create Form-->
<form action="" method="post" name="create" id="createForm" onsubmit="createNew(document.create.create2.value); return false;">
<h5>Create New File</h5>
<p><input name="create2" type="text" maxlength="32" /></p>
<input type="submit" name="submit" value="Create" />
</form>
/* ajax.js */
function createNew(name)
{
$('#loading').css('visibility','visible');
$.ajax({
type: "POST",
url: "../utilities/process.php",
data: 'name='+name,
datatype: "html",
success: function(msg){
if(parseInt(msg)!=5)
{
$('#success').html('Successfully added ' + name + ' into database.');
$('#loading').css('visibility','hidden');
alert('success');//testing purposes
}
else
{
$('#err').html('Failed to add ' + name + ' into database.');
$('#loading').css('visibility','hidden');
alert('fail');//testing purposes
}
}
})
}
/* process.php */
<?
include('db_connect.php');
if($_POST['name'])
{
$name = $_POST['name'];
$name = mysql_escape_string($name);
$query = "INSERT INTO tz_navbar (name) VALUES (".$name.")";
$result = mysql_query("$query") or die ("5");
}
?>
这是我的问题: 在我提交表单后,它会报告成功,但没有任何内容添加到我的数据库中。
先谢谢你们花时间帮助我。
答案 0 :(得分:4)
查看您的查询,我怀疑您需要它:
$query = "INSERT INTO tz_navbar (name) VALUES ('".$name."')";
如果不能解决问题,则需要记录$ _REQUEST
的值error_log(print_r($_REQUEST,true));
确保您在服务器端获得正确的值。
答案 1 :(得分:1)
你有$ _POST ['name'],但在你的表单中,输入type = text name =“create” 哪个应该是$ _POST ['create']。这就是你的$ _POST ['name']在传递时没有任何价值的原因。
答案 2 :(得分:0)
检查您的查询。
$query = "INSERT INTO tz_navbar (name) VALUES ('$name');
另外,您可以尝试在没有javascript的情况下测试process.php。这样你就可以看到mysql错误信息。使用die()
或其他内容。