我正在尝试使用AJAX提交表单,但它无效。该函数执行但ajax在控制台中返回内部500错误...
问题似乎出现在我正在调用的PHP文件中。我不确定我是否正确使用序列化数据,因为当我用SQL替换SQL的值时,它执行并且很好 - 因此它可能是空值的问题..
以下问题修改编码:
HTML:
<form method="POST" id="addIndicator" class="smart-form">
<input type="text" name="numerator" placeholder="Numerator">
<input type="text" name="denominator" placeholder="Denominator">
<input hidden type="text" value="1" name="iid"/>
<input id="indicator_submit" class="btn btn-primary pull-right" type="submit" value="Add Data" style="margin-top:-15px;padding:6px;">
</form>
jQuery的:
$("#indicator_submit").click(function(e) {
$.ajax({
cache: false,
type: 'POST',
url: 'addIndicatorData.php',
data: $("#addIndicator").serialize(),
success: function() {
alert('success');
}
});
alert("function working");
e.preventDefault();
});
PHP:
$iid = $_POST['iid'];
$num = $_POST['numerator']; //numerator val
$den = $_POST['denominator']; //denominator val
$perc = ($num / $den) * 100; //percentage calculated
$abc = $con->prepare("INSERT INTO indicator_data VALUES (:iid,'',:num,:den,:perc,NOW())");
$abc->bindParam(':iid', $iid);
$abc->bindParam(':num', $num);
$abc->bindParam(':den', $den);
$abc->bindParam(':perc', $perc);
$abc->execute();
答案 0 :(得分:0)
jQuery serialise方法返回表单的标准URL编码字符串表示形式。在PHP中,您需要parse the string进入PHP数组,例如
<?php
parse_str($_POST['indicator'], $input);
注意,您需要为对象命名:
$.ajax({
cache: false,
type: 'POST',
url: 'addIndicatorData.php',
data: {
indicator: $("#addIndicator").serialize()
}
});