【发布时间】:2014-09-06 05:42:10
【问题描述】:
我正在尝试掌握 Ajax 调用的窍门,但我正在努力实现基本的代码和平 :)
即使调用似乎成功,我也会不断收到错误警报。 我尝试调试代码并添加了一些断点,并注意到 done-function 确实执行了。 form-info 已被写掉,并且从 php-script 返回了一个字符串。 有一段时间,文本确实出现了,但在完成功能后消失了。 调试时我没有收到错误消息。只有在正常运行脚本时才会出现。
任何帮助将不胜感激。
<div id="formDiv">
<form method="post" id="form">
<label for="title">Title: </label>
<input type="text" name="title" id="title" />
<label for="composer">Composer: </label>
<input type="text" name="composer" id="composer" />
<label for="link">Link: </label>
<input type="text" name="link" id="link" />
<label for="description">Description: </label>
<input type="text" name="description" id="description" />
<input type="submit">
</div>
<div id="outerDiv">
<p id="p"></p>
</div>
<script>
$("#form").submit(function(){
var postData = $(this).serializeArray();
$.ajax({
url: "test.php",
type: "POST",
data: postData,
dataType: "text"
})
.done(function(data){
$("#p").text(data);
})
.fail(function(){
alert("Error!");
});
});
</script>
test.php
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'db');
if ($dbc->connect_error) {
die('Connect Error: ' . $dbc->connect_error);
}
$title = $_POST['title'];
$composer = $_POST['composer'];
$link = $_POST['link'];
$description= $_POST['description'];
$query = "INSERT INTO table(Titel, Componist, Link, Description) VALUES ('$title', '$composer', '$link', '$description')";
mysqli_query($dbc, $query);
$resultquery = mysqli_query($dbc,"SELECT * FROM table");
$result = "";
while($row = mysqli_fetch_assoc($resultquery)){
$result .= $row["Titel"]." | ".$row["Componist"]." | ".$row["Link"]." | ".$row["Description"]."\n";
}
echo $result;
mysqli_close($dbc);
?>
【问题讨论】:
-
你在浏览器的控制台观察到请求/响应的过程了吗?
-
你很容易受到sql注入攻击。
-
SQL 注入攻击:我知道。我只是在尝试一个简单的功能。
-
请求/响应:应该是这样。表单数据和包含所有表格元素的字符串作为响应
标签: javascript php jquery ajax