0

我正在从 MySQL 数据库中获取带有标题及其描述的行。我想更改从数据库中获得的字符串。

<div class="title"><?php $row['title']?></div>
<div class="details"><?php $row['desc']?></div>

那么请告诉我,如何将 javascript 应用于此内容($row['..'])?意思是,我如何在 Javascript 中访问这些字符串?

如果字符串长度超过 50 个字符,我想限制字符串并在其中添加点 (...)。

4

5 回答 5

1

使用起来mb_substr()substr()

<?php
echo mb_substr($row['title'],0,50);

资源

于 2013-09-21T10:14:22.180 回答
0

您可以使用substr.

<?php echo (strlen($row['desc']) > 50) ? substr ($row['desc'] , 0, 50 ).'...' : $row['desc']; ?>
于 2013-09-21T10:08:24.707 回答
0

为什么要这样做?Html 有一个 CSS。您可以固定宽度并添加“文本溢出:省略号”。

尝试这个:

<div class="fixedWidth title"><?php $row['title']?></div>
<div class="fixedWidth details"><?php $row['desc']?></div>

<style>
    .fixedWidth{
        width:200px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow:ellipsis;
    }
</style>
于 2013-09-21T10:27:08.393 回答
0

如果您正在使用非 ASCII 字符串并且想要操作这些字符串,那么使用 substr() 是错误的。相反,您应该使用多字节字符串函数,例如mb_substr( )等

为此,您必须为 PHP 启用 mbstring-extension。见http://php.net/manual/en/mbstring.installation.php

我也不会直接回显使用 javascript 的字符串 - 你永远不知道那里可能有什么字符,然后你应该开始转义一些字符以与 javascript 一起正常工作。

相反,我会鼓励你使用json_encode。这将正确转义所有特殊字符和 UTF8 字符。必须为 json_* 函数启用 PECL 的 json-extension。见http://php.net/manual/en/json.installation.php

当然,如果您使用Zend -framework,那么正确的方法是使用Zend_Json::encode()

<?php 
    $maxLength = 50;
    $encoding = 'UTF-8';
    $tail = ' ...';
    $row['desc'] = (mb_strlen($row['desc'], $encoding) > $maxLength) ? mb_substr($row['desc'], 0, $maxLength, $encoding) . $tail : $row['desc'];

?>
<script type="text/javascript">
    var rowData = <?php echo json_encode($row); ?>;
    alert(rowData.desc);
</script>
于 2013-09-21T10:40:58.437 回答
0

你为什么不直接尝试使用 javascript 的 php 脚本。你可以按如下方式制作。

<div class="title"><?php echo $title = strlen($row['title']) > 50 ? substr($row['title'], 0, 50)."..." : $row['title']; ?></div>

然后你也可以在 javascript 中获取标题。

$(document).ready(function(){

 var title = $(".title").text();

});
于 2013-09-21T10:55:18.350 回答