2012-12-25 12 views
0

我有一些運行ajax腳本,它允許用戶搜索聯繫人的數據庫表,然後單擊要向其發送電子郵件的聯繫人。將文本發送給聯繫人的鏈接只是結果中的錨鏈接,其中的文本作爲url中的變量傳遞。然後在服務器端,服務器將文本發送到聯繫人的電子郵件地址。html/javascript:錨鏈接查詢字符串中的值長度限制或解決方法

我遇到的問題是,如果文本超過了一定的長度而不是隱藏在url中,它就會在頁面上顯示。然後腳本不再正常工作。起初,我認爲這個問題可能是由於文本中的特殊字符破壞了錨鏈接的URL,但似乎並不是這樣......這只是一個長度問題。

我發現這個posting

,說那裏不應該是查詢字符串的限制。然而,就我而言,甚至在嘗試提交查詢字符​​串之前就會出現問題,因爲它會彈出url並在頁面上可見。由於它是在一個URL到服務器,我想不出一個好的方式來傳遞URL以外的長文本值,

有沒有人跑過這個問題,如果是的話,你可以建議一個解決方法?

這裏是一個例子。

a href="sendemail.php?contactid=33&text=HERE IS SOME SHORT TEXT">Send to Harry</a> //works 

a href="sendemail.php?contactid=33&text=HERE IS SOME REALLY LONG TEXT THAT GOES ON AND ON.....ON AND ON.... ON AND ON....ON AND ON....PAST A FEW HUNDRED CHARACERS">Send to Harry</a> // "HERE IS SOME REALLY LONG TEXT etc." IS VISibLE ON PAGE 

回答

0

測試都在這的jsfiddle您的鏈接:http://jsfiddle.net/rzj6n/一切都很好,你的問題必須在別處。

但是,如果你想避免非常長的querystrings你可能想使用一個窗體來發布數據,而不是使用GET。

<form action="sendemail.php" method="POST"> 
    <input type="hidden" name="contactid" value="33" /> 
    <input type="hidden" name="text" value="here is some text..." /> 
    <input type="submit" value="Send to Harry" /> 
</form> 

然後,你將需要$_POST['contactid']$_POST['text']

+0

你是正確的訪問傳遞的值。認識到問題不是價值的長度,而是一個特殊的性格。我有一個「在那裏,這是什麼導致價值顯示在網頁以外的頁面。你不知道正確的方式來逃避一個報價的任何機會?我試過escape(string)where string is the whole字符串,它插入%20等單詞之間,但它並沒有修復引號,仍然沒有顯示正確 – user1904273

+0

嘗試encodeURIComponent(querystring);這將給你%22的雙引號 –