由于某种原因,我从PHP函数的响应中不知从哪里得到了一个<br/>
标记。。。
这是ajax:
var paid_value = 'Paid';
$.ajax({
url: 'http://localhost/myshop/owe_money/add_paid.php',
type: 'post',
data: { paid_value:paid_value } ,
beforeSend: function() {
$("#ajax-result").html('Before');
},
success: function(data) {
$("#ajax-result").html(data);
$('input[name="mark_as_paid"]').val(data);
},
error: function(xhr, ajaxOptions, thrownError) {
$("#ajax-result").html('Error');
}
});
和PHP:
function add_paid() {
include('../db_connect.php');
$paid_value = $_POST['paid_value'];
if (is_numeric($paid_value)) {
$sql = "UPDATE paid SET first_item = $paid_value";
} else {
$sql = "UPDATE paid SET first_item = '".$paid_value."'";
}
if (mysqli_query($connect, $sql)) {
echo $paid_value;
} else {
echo "Unsuccesful".mysqli_error($connect);
}
die;
}
add_paid();
我的回答应该只是简单地说"付费",而不是说"<br />
付费"。
从表面上看,它看起来很不错。你可能会发现br正在其他地方。也许它已经在文件中了?
如果它发现它进入了$_POST变量,你可以暂时破解这个问题,使用
$paid_value = strip_tags($_POST['paid_value]);
这个答案没有任何保证!
在jQuery代码中,将success
块更改为:
success: function(data) {
$("#ajax-result").html(data);
$('input[name="mark_as_paid"]').val(data);
console.log(data)
},
在浏览器中打开调试器并查看控制台。这将写入从PHP脚本发送的数据的值,并且可能有也可能没有换行符。我怀疑换行符可能来自第一页,但这将允许您看到这一点。
我看不出代码有任何问题,所以我认为这与您显示结果的表单/输入有关——您没有包括这一点。
您可以在成功的ajax 中使用替换标记
data.replace("but the br tag","");
但它仍将存在于数据库