【发布时间】:2016-11-16 10:59:11
【问题描述】:
我测试了我的 update.php 文件,它运行良好,当我通过控制台检查我的脚本时没有任何错误。唯一的问题在这里。 Ajax 无法将值“id”“comment_area”发送到 update.php 文件。这里有什么错误?
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.2.min.js">
$(document).ready(function() {
$("#b_news").submit(function(evt) {
evt.preventDefault();
var text = $('#breaking_news_text').val();
var id = 21;
$.ajax({
type: "POST",
url: "update.php",
data: {
comment_area: text,
id: id
},
success: function() {
alert("sucess");
}
});
});
});
</script>
<form id="b_news" method="post" action="">
<div>
<div>
<textarea id="breaking_news_text" class="breaking_news_text" rows="6" cols="50" placeholder="Add text here..." required></textarea>
</div>
</div>
<div>
<input type="button" id="save" value="Save Changes" />
</div>
</form>
<?php
include("./inc/connect.inc.php");
$id=$_POST['id'];
$update = $_POST['comment_area'];
$sql = "update comments set comment_area='$update' Where id='$id'";
$result = mysqli_query($mysqli, $sql)or die("error");
?>
【问题讨论】:
-
显示 php 代码。做了任何基本的调试吗?也许有一个重定向并且您的脚本被称为 GET,并且 post 值丢失了。
-
var_dump($_SERVER['REQUEST_METHOD'], $_POST)看看会发生什么。请注意,您很容易受到sql injection attacks 的攻击。 -
尝试通过将其放入您的 PHP 脚本中进行调试,
var_dump($_POST)并确保您看到这两个参数。 -
尝试发送您的数据序列化。
data: comment_area=${text}&id=${id} -
仅供参考,您的 PHP 文件非常不安全。如果我向您发送一个带有
id或' OR ''='的POST 请求怎么办?
标签: javascript php ajax