2011-03-08 90 views
1

我遇到了嘗試在窗體上執行multitextarea的問題。使用jQuery和PHP動態加載textareas時遇到問題

我有一個PHP視圖,有各種形式,所有處理不同,但在同一個文件。他們都可以工作,我已經測試過,他們的工作。在表單中有一個+圖標,可讓用戶添加更多<textarea />的實例。這個+圖標通過AJAX加載一個新的textarea,其名稱與之前的textarea相同(例如,name =「example []」)。如果我發佈這個,它只會得到第一個以前沒有被jQuery加載過的項目。問題是動態加載的完全被忽略,我不知道爲什麼。

我的我的PHP觀點摘錄:

<?php echo form_open("projects/view/".$projectid); ?> <!-- This generates a valid <form /> tag --> 
     <table> 
      <tr> 
       <th><?php echo lang("label_conx");?></th> 
       <td class="textarea-edit"> 
        <textarea class="context" name="CONX[]"><?php echo set_value("CONX[]");?></textarea> 
       </td> 
       <td class="add"><a id="add-conx" href="#"><?php echo img("img/icons/plus.png");?></a></td> 
      </tr> 
... 

我的jQuery代碼,因爲顯示的內容和我的螢火看到相同的HTML載入textarea的工作正常:

$("a#add-conx").click(function(){ 
    $("#ajax-loader").fadeIn('normal'); 

    $("textarea.context:last").after('<textarea class="context" name="CONX[]"></textarea>'); 

    $("#ajax-loader").fadeOut("normal"); 

    return false; 
}); 

當我發送的形式,我有一個在我的PHP控制器print_r($_POST);,我只得到:

Array 
(
    [CONX] => Array 
     (
      [0] => safdsddasfafsd 
     ) 
    ... 

如果我把PHP視圖放在不同的textareas上,這個數組的增加量與我在HTML視圖文件中創建的textareas的數量相同。我不明白爲什麼這不起作用。

當頁面是負載: enter image description here

動態地添加一些內容之後: enter image description here

這兩個圖像顯示文本區域的4個實例的名稱上下文[] (已被改變到CONX [],但失敗平等),在視圖中。第二張圖片顯示了使用jQuery和PHP加載的圖片僅檢測到HTML上的前4張。

任何人都有一些想法,我可以解決這個問題?

預先感謝您!

+0

什麼是提交方法?常規提交或ajax提交? – 2011-03-08 11:00:09

+0

@Jerome:它是一個常規提交,但在同一頁面有5個提交按鈕(使用不同的名稱)。 – udexter 2011-03-08 11:02:14

+0

可以在簡單的條件下解釋它 – 2011-03-08 11:05:41

回答

2

我懷疑這是與HTML的正確性。

讀取您的問題,並且您使用常規提交問題的事實可能是缺少「表單」結束標記。

當html未正確嵌套時,瀏覽器有時會出現奇怪的Javascript行爲。

+0

+1,很好地拾起。 – 2011-03-08 11:29:20

0

你應該看看jQuery的.live()函數。

http://api.jquery.com/live/

+2

我不明白這是怎麼回事......有什麼機會可以填補空白? :) – 2011-03-08 10:59:21

+0

相同... jQuery點擊不會失敗。 :) – udexter 2011-03-08 11:02:29

相關問題