2014-08-30 25 views
0

這是我的第一篇文章,所以如果我遵從規則,請讓我知道。jquery和php中的轉義字符

我在jQuery的文件,這個說法有問題:

 $('#temp').append(
       "<li class = 'list-group-item'><a href='others_profile.php?view=<?php echo $row['user']?>'>" 
       + array_users_found[i] + 
       "</a></li>"); 

因爲符號'圍繞「用戶」會導致一個問題,我猜。

我該如何解決這個問題?

+1

這應該不是一個問題,因爲PHP之前得到解析。這是一個PHP文件或您的服務器設置爲處理JavaScript文件爲PHP? – jeroen 2014-08-30 16:07:00

+1

PHP通常不會以簡單的'.js' JavaScript文件運行(這就是你推測的「jquery文件」)。 – mario 2014-08-30 16:07:34

+0

我想你忘了在echo聲明中使用分號<?php echo $ row ['user']; ?> – user3350731 2014-08-30 16:09:08

回答

1
$('#temp').append(
    '<li class="list-group-item"><a href="others_profile.php?view=<?php echo urlencode($row['user']); ?>">' 
    + array_users_found[i] + 
    '</a></li>' 
); 

注意:一個PHP語句將被解釋的唯一方法是,如果這是由一個支持PHP的Web服務器處理的HTML文件中存在。通常,這些文件的擴展名爲.html或.php。例如,將一個PHP語句放在.js文件中將不起作用。 PHP解釋器不會解析.js文件。

其他注意事項:如果您想將PHP集成到您的JavaScript中,最簡單的解決方案是將代碼片段移動到您的HTML文檔中,無論它需要什麼。或者,您可以在輸出任何內容之前通過適當設置響應header將您的JavaScript文件更改爲提供JavaScript內容的PHP文件。例如:

<?php header('Content-Type: text/javascript'); ?> 
// your javascript here ... 

對這個缺點的方法是,您要添加PHP的開銷投放JavaScript和,因爲它假定是動態的瀏覽器可能不緩存文件。

+0

謝謝您的回答,但我認爲我也遇到同樣的問題。因爲'用戶'中的第一個'與第一個匹配'。 – Elle 2014-08-30 16:24:42

+0

然後你的PHP代碼不被解釋。你能解釋一下這個javascript代碼的存在或者粘貼你的完整源代碼嗎? – 2014-08-30 16:57:17

+0

此JavaScript代碼存在於外部.js文件中。外部來自主html(在這種情況下以.php擴展名)頁面。我試圖追加這個列表到一個div,所以當我點擊列表中的鏈接附加另一個PHP文件(在這種情況下others_profile.php)被稱爲 – Elle 2014-08-30 17:17:12