ajax / php响应添加不需要的br标签

时间:2013-11-17 23:24:26

标签: php jquery ajax

由于某些原因,我在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 />付费”。

2 个答案:

答案 0 :(得分:0)

在它的表面上,它看起来很健康。你可能会发现br正在其他地方进行。也许它甚至已经存在于文件中了?

如果它发现它进入$ _POST变量,你可以暂时解决问题使用

 $paid_value = strip_tags($_POST['paid_value]);

这个答案没有任何保证!

答案 1 :(得分:0)

在您的jQuery代码中,将success块更改为:

success: function(data) {
                $("#ajax-result").html(data);
                $('input[name="mark_as_paid"]').val(data);
                console.log(data)
            },

在浏览器中打开调试器并查看控制台。这将写入从PHP脚本发送的数据值,并且可能有也可能没有换行符。我怀疑换行符可能来自第一页,但这可以让你看到这一点。

我看不出代码有任何问题所以我认为它与显示结果的表单/输入有关 - 你还没有把它包括在内。