在AJAX响应中删除空格

时间:2015-06-18 09:44:29

标签: javascript php jquery html

我有一个返回0.28的php脚本。然后使用AJAX将其提取到HTML,并插入到span中。问题是,它插入了5个空格,看起来像是换行符。然后,jQuery将其视为更改,并在没有更改时使用新值更新现有跨度。似乎空格不是来自php。我试过了:

  • 修剪()和ltrim()php以摆脱空白
  • 删除php退出标记
  • 白色空间崩溃:丢弃;在css中并使用!important标签 (这是没有被阅读,并且铬黄色警报就在上面)
  • 使用jquery修改响应
  • 使用html笔记缩小空间

转储php变量:

string(4) "0.28"

这是我的浏览器返回的方式

   <span id="response1" style="display: inline;">*5spaceshere*    
   0.28</span>

这是我的剧本

$(function () {
    function update() {
        $.ajax({
            type: "GET",
            url: "balancefetch.php",
            dataType: "html",
            success: function (response) {
                var trimmedResponse = $.trim(response)
                if (trimmedResponse != $("#response1").html()) {
                    $("#response1").fadeOut(200, function () {
                        $("#response1").html(response);
                        $("#response1").fadeIn();
                    });
                } else {}
            }

        });
    }
    setInterval(update, 5000);
    update();
});

我的HTML

<div id="balance-div"><!--
--><p class="balance">Balance<span id="response1">Loading...</span></p><!--
--></div>

PHP

$balance = ltrim($balance);
echo $balance;

$balance持有0.26

2 个答案:

答案 0 :(得分:7)

因此,经过测试并通过几种方法找到问题所在,找到了这个问题的根源。

为什么不使用像trim或RegEx这样的技术删除空格的主要部分是,因为这样可以解决当前问题,但不能解决来源,所以这只是一个不好的解决方法,所以这很重要找到来源。

源代码问题出现在配置文件中,配置文件里面有一些空格,并且在将其包含在脚本中之后(通过AJAX加载),也包含了空格。

解决方案:删除配置文件的空格和/或只删除?> PHP结尾标记。

有关进一步的调试步骤,请查看问题的评论部分。

答案 1 :(得分:0)

找到了解决方案!

问题出在php文件中。我不应该在我的php文件中的行之间保留任何空格

这是我的php文件,我在评论中指出白色空间是

<?php 
require_once '../includes/session.php';
require_once '../includes/functions.php';
require_once '../includes/validation_functions.php';
// white space is in the place of this comment here ! so i removed it and problem was solved
if (isset($_POST['reply_board_textarea'])) {
    $board_id = (int)$_GET['board_id'];
    $comment_id = (int)$_GET['comment_id'];
    $reply = mysql_prep($_POST['reply_board_textarea']);
    $reply_timestamp = time();
    $user_id = (int)$_SESSION['user_id'];

    // INSERT into table
    $query  = "INSERT INTO board_comment_reply_table ( ";
    $query .= "comment_id, board_id, user_id, reply, reply_timestamp";
    $query .= ") VALUES (";
    $query .= " $comment_id, $board_id, $user_id, '$reply', $reply_timestamp";
    $query .= ")";
    $result = mysqli_query($connection, $query);

    $reply_count = board_reply_count($comment_id);

    echo $reply_count;
}

&GT;