2013-09-21 98 views
0

我正在從MySQL數據庫中讀取標題爲&的行。 我想改變從數據庫中獲得的字符串。減少從數據庫中檢索的字符串長度

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

所以,請告訴我,如何應用JavaScript來此內容($行[ '..'])?意思是,我如何在JavaScript中訪問這些字符串?

如果字符串長度超過50個字符,我想限制字符串&添加點(...)。

+0

'substr'是可能的在PHP那麼爲什麼javasctipt –

+0

是的,我明白了。謝謝你的方式。 – Akshay

+0

我敢打賭,如果你搜索「閱讀更多鏈接」片段,你會得到更高級的解決方案,不僅僅是在位置上切斷你的字符串,你不會真的想......(例如,在一個詞的中間,或者如果包含HTML,則銷燬html) – djot

回答

0

您可以使用substr來做到這一點。

<?php echo (strlen($row['desc']) > 50) ? substr ($row['desc'] , 0, 50).'...' : $row['desc']; ?> 
+0

僅在大於50時才附加'...'。 –

+1

這是一個簡短的答案,謝謝你..這兩個urs和阿馬爾的答案是相同的只是格式改變..所以,你們都謝謝。 – Akshay

1

這是更好地使用mb_substr()substr()

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

Source

0

爲什麼這樣做? Html有一個CSS。你可以修改寬度並添加「text-overflow:ellipsis」。

試試這個:

<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> 
0

如果您正在使用非ASCII字符串並要處理那些然後SUBSTR()是錯誤的使用。相反,您應該使用多字節字符串函數,如mb_substr()others

爲此,您必須爲PHP啓用mbstring-extension。看到http://php.net/manual/en/mbstring.installation.php

我也不會直接回聲字符串使用JavaScript - 你永遠不會知道什麼字符可以在那裏,然後你應該開始轉義一些字符與JavaScript正常工作。我會鼓勵你使用json_encode。這將正確地逃脫所有特殊和UTF8字符。 必須爲json_ *函數啓用PECL的json擴展。見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> 
0

你爲什麼不嘗試直接PHP腳本insted的JavaScript代碼。 你可以如下。

<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(); 

}); 
+0

如果您將代碼使用代碼按鈕,將在行的開始處創建4個空格。 – jcubic