我已经在这里待了几个小时,需要一些帮助。我对 jquery 有点陌生 - 它似乎很简单,但我无法让它工作。如果我通过表单将数据直接提交到 php 页面,它运行良好,但我无法执行 ajax。这非常简单,只需发送一个变量即可标记项目以供审核。任何帮助,不胜感激。
<input type="hidden" id="flag_item" name="flag_item" value="<?php echo $row[0]; ?>" />
<input type="button" class="grn_button2" id="report_btn" name="report_btn" onclick="MM_changeProp('flag1','','display','none','SPAN'), MM_changeProp('flag2','','display','inline','SPAN')" value=" Report Item "/>
jquery代码
<script src="js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).on('click','#report_btn',function(e) {
var data = $("#flag_item").val();
$.ajax({
data: data,
type: "POST",
url: "flag.php",
success: function(data) {
alert("Item has been reported");
}
});
});
});
</script>
和 PHP
$flag_item = mysqli_real_escape_string($dbgo, $_POST["flag_item"]);
$query = "SELECT flag FROM listings WHERE item_num = '$flag_item'";
$result = mysqli_query($dbconnect, $query);
if(!$result){
die('Invalid query: ' . mysql_error());
}
$row = mysqli_fetch_row($result);
$new_row = $row[0] + 1;
你在这里错过了参数名称:
var data = $("#flag_item").val();
试试这个:
var data = {"flag_item":$("#flag_item").val()};
我现在让它工作了。我放弃了我正在使用的jquery并重新开始。这个jquery代码正在工作。
$('#flag_form').submit(function(){
return false;
});
$('#flag_form').click(function(){
$.post(
$('#flag_form').attr('action'),
$('#flag_form :input').serializeArray(),
function(result){
alert("Item has been reported");
}
);
});
我还在输入字段中添加了表单标签和操作。感谢您的帮助,我很感激。