我想使用ajax在数据库中添加数据,但没有任何反应 我不知道它在ajax中是错误的还是在php中 这是我的代码的一部分:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript" >
$(document).ready(function(){
$("#commentForm").submit(function(){
var U_N = $('input[name="U_N"]').val();
var I_name = $('input[name="I_name"]').val();
var context = $("#inputmessage").val();
$.ajax({
type: "POST",
cache: false,
url : "aAddComm_Menu.php",
data : {U_N:U_N,I_name:I_name,context:context},
});
});
});//end of document ready function
</script>
这是html表格:
<form class="form-horizontal" role="form" id="commentForm" method="POST" action="">
<div class="form-group">
<label for="inputmessage" class="col-sm-2 control-label">comment</label>
<div class="col-sm-10">
<textarea name = "context" class="form-control" id="inputmessage" rows="3" placeholder="Enter your comment here . . "></textarea>
</div>
</div> <!-- End of /.form-group -->
<input type="hidden" value = "$Item['Item_Name']" name="I_name"/>
<input type="hidden" value ="$U_N" name="U_N"/>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button name="SendC" type="submit" class="btn btn-primary" ;>Send</button>
</div>
</div>
</form>
这是添加到数据库的php页面的一部分
extract($_POST)
if(isset($context))
{
mysql_query("INSERT INTO menu_commnet VALUES('$I_name','$U_N',NULL,NOW(),'$context')");
}
答案 0 :(得分:0)
var U_N = $("input#U_N").val();
var I_name = $("#I_name").val();
var context = $("#context").val();
jQuery选择器是错误的,你没有选择任何东西。 #
选择器代表id
属性,但您尝试按name
属性的值进行选择。您应该添加/更改输入字段的id
属性,或使用
var U_N = $("input[name=U_N]").val();
var I_name = $("input[name=I_name]").val();
var context = $("[name=context]").val();
提示:下次使用developer console inside your browser时,您可以轻松测试选择器是否正确。您可以像在.js文件中一样输入javascript代码,并测试它是否像您期望的那样工作。
此外,请勿在PHP中执行此操作,请使用prepared statements。
答案 1 :(得分:0)
您是否在后端脚本中包含了数据库连接? 提取物($ _ POST)
'if(isset($context)) {
mysql_query("INSERT INTO menu_commnet VALUES('$I_name','$U_N',NULL,NOW(),'$context')");
}'
我想在这里你应该包括数据库信息,&#39; include_once(&#34; database info.php&#34;); ,还要确保你的ajax会返回一个结果,并回显php错误,只是为了确保它是一个ajax或php错误,
答案 2 :(得分:0)
我对您的问题几乎没有评论:
$("document").ready(function(){
替换为
$(document).ready(function(){
var_dump($_POST)
根据您的HTML代码使用:
var U_N = $(&#39;输入[name =&#34; U_N&#34;]&#39;)。val();
var I_name = $(&#39;输入[name =&#34; I_name&#34;]&#39;)。val();
var context = $(&#34; #inputmessage&#34;)。val();
答案 3 :(得分:0)
这是最后的工作示例。只需添加“ev”参数即可提交回调函数,然后在其中使用ev.preventDefault()。
$(document).ready(function(){
$("#commentForm").submit(function(ev){
ev.preventDefault();
var U_N = $('input[name="U_N"]').val();
var I_name = $('input[name="I_name"]').val();
var context = $("#inputmessage").val();
$.ajax({
type: "POST",
cache: false,
url : "aAddComm_Menu.php",
data : {U_N:U_N,I_name:I_name,context:context}
});
});
});//end of document ready function
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form class="form-horizontal" role="form" id="commentForm" method="POST" action="">
<div class="form-group">
<label for="inputmessage" class="col-sm-2 control-label">comment</label>
<div class="col-sm-10">
<textarea name="context" class="form-control" id="inputmessage" rows="3"
placeholder="Enter your comment here . . "></textarea>
</div>
</div>
<input type="text" value="" name="I_name"/>
<input type="text" value="" name="U_N"/>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button name="SendC" type="submit" class="btn btn-primary">Send</button>
</div>
</div>
</form>