2011-11-18 44 views
1

我想通過jQuery將表單發送到PHP文件。問題是,必須發送到PHP文件的內容包含斜線(/),因爲裏面有BBcode。 所以我試過如下:如何編碼內容通過jquery發送給php文件?

$.ajax( 
    { 
     type: "POST", 
     url: "create.php", 
     data: "content=" + encodeURIComponent(content), 
     cache: false, 
     success: function(message) 
     { 
      $("#somediv").html(message); 
     }    
    }); 

在PHP文件我用rawurldecode()的內容進行解碼,並讓我BBcodes回來,我就可以轉換成HTML。問題是一旦我把encodeURIComponent()它會輸出:[object HTMLTextAreaElement]

這是什麼意思,我的錯誤在哪裏?

+0

所以,讓我澄清一下:'[object HTMLTextAreaElement]'是什麼包含在'#somediv'?這聽起來很瘋狂,這就是你的問題所暗示的,所以我想我會問。 –

+0

你能展示什麼是由'content'變量表示的嗎? – vascowhite

+0

內容變量應該包含ID爲「content」的文本字段的內容。 – phpheini

回答

5

包裝你的數據作爲對象常量,並讓jquery擔心骯髒的細節:

// javascript 
$.post(
     "create.php", 
     { 
      content: "here is my content/slashes included." 
     }, 
     function(message) { 
      $("#somediv").html(message); 
     } 
) 


/////////////////////////////////////////////// 

// php 
$formData = $_POST["content"]; 
echo $formData; 
// yields: here is my content/slashes included. 
+0

當然,正如其他人所說的,確保你有當你準備發佈()時,有問題的元素的實際內容,*不是元素本身。 – Christopher

+0

現在它和剛開始時一樣。如果我的內容是:[b]沒關係,但是如果它是[b]的東西[/ b],它不會顯示任何東西。 這是我現在的代碼,應該工作還是不工作? var content = $(「#content」)。val(); $ .POST( \t \t 「create_preview.php」, { 類型: 「POST」, 內容:內容 \t \t}, \t \t函數(消息) \t \t \t { \t \t \t $( 「#previewdiv」)。HTML(消息); \t \t \t \t \t \t \t} \t \t)' – phpheini

+0

你能張貼您的PHP腳本的相關部分? – Christopher

0

不太確定,但變量content的值似乎是HTML元素,而不是該HTML元素的內容。

其他地方在你的代碼,你可能會碰到這樣的:

var content = $("selector"); 

...但它應該是:

var content = $("selector").val(); 

不能沒有看到你的代碼的其餘部分肯定的告訴,但這就是我所看到的。

+0

內容是文本字段的ID。我把var content = $(「#content」)。text();在腳本中,現在奇怪的消息不再出現,但根本沒有輸出 – phpheini

+1

使用$(「#content」)。val()代替。 – Christopher

+0

現在它和剛開始時一樣。如果我的內容是:[b]沒關係,但是如果它是[b]的東西[/ b],它不會顯示任何東西 – phpheini

1

content變量是textarea元素,而不是文本區域中的文本(如果這是你在找什麼,因爲你沒有說明什麼是content

相關問題