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