2013-04-09 178 views
1

多的CKEditor我有一個在一個循環通過PHP具有相同名稱的textarea

它是這樣的

<?php 

     $number = count($name_array); 
     $id = 0; 

     while($id<$number) 
      { 
       if($category[$id] == ewbp) 
      { 
      $ewbp = 'selected'; 
      } 
       if($category[$id] == iwbp) 
      { 
      $iwbp = 'selected'; 
      } 
       if($category[$id] == wbe) 
      { 
      $wbe = 'selected'; 
      } 
       if($category[$id] == texture) 
      { 
      $texture = 'selected'; 
      } 
       if($category[$id] == putties) 
      { 
      $putties = 'selected'; 
      } 
       if($category[$id] == primer) 
      { 
      $primer = 'selected'; 
      } 

     echo " 
     <div class=\"update_form_holder\"> 
     <form action=\"processor/update.php\" enctype=\"multipart/form-data\" method=\"post\"> 
      <table> 
       <tr> 
        <td>Name</td><td><textarea rows=\"1\" cols=\"30\" name=\"name\">"."$name_array[$id]"."</textarea></td> 
       </tr> 
       <tr> 
        <td>Small Description</td><td><textarea rows=\"2\" cols=\"60\" name=\"short_desription\">"."$short_description[$id] "."</textarea></td> 
       </tr> 
       <tr> 
        <td>Full Description</td><td><textarea rows=\"5\" cols=\"60\" name=\"long_description\">"."$long_description[$id]"."</textarea></td> 
       </tr> 
       <tr> 
        <td>Category</td> 
        <td> 
         <select name=\"category\"> 
          <option value=\"ewbp\" ". "$ewbp" . ">Exterior Water Based Paints </option> 
          <option value=\"iwbp\" ". "$iwbp" . ">Interior Water Based Paints</option> 
          <option value=\"wbe\" ". "$wbe" . ">Water Based Enamel </option> 
          <option value=\"texture\" ". "$texture" . ">Textures</option> 
          <option value=\"putties\" ". "$putties" . ">Putties</option> 
          <option value=\"primer\" ". "$primer" . ">Premir</option> 
         </select> 
        </td> 
       </tr> 
       <tr> 
        <td><input type=\"hidden\" value=\""."$idi[$id]"."\" name=\"idi\"></td> 
       </tr> 
       <tr> 
        <td><input type=\"submit\" value=\"update\"></td> 
       </tr> 
      </table> 
     </form> 
     </div> 
     <div class=\"image_holder\"> 
      <img src=\""."$imgurl[$id]"."\" /> 
     </div> 
     <form action=\"processor/delete.php\" method=\"post\"> 
      <input type=\"hidden\" value=\"$idi[$id]\" name=\"delete_id\"> 
      <input type=\"hidden\" value=\"$filename[$id]\" name=\"delete_file\"> 
      <input type=\"submit\" value=\"delete entry\" > 
     </form> 
     "; 
     $id++; 
     $ewbp = ''; 
     $iwbp = ''; 
     $wbe = ''; 
     $texture = ''; 
     $putties = ''; 
     $primer = ''; 
     } 
     ?> 

和IM試圖獲得的textareas使用的CKEditor,問題是創建的窗體,它需要不同的名稱來創建新的實例,但是我不能更改名稱,因爲數據被提交給另一個用於存儲在sql數據庫中的php文件。有沒有辦法讓它創建更多的實例,而不必更改名稱?我嘗試使用ID,但它不起作用。而且這個link讓我懷疑它是否可能。

+0

你或你的團隊有控制PHP腳本? – hek2mgl 2013-04-09 11:44:33

+0

是的,沒有團隊只是我:P所以可以改變任何需要 – TDsouza 2013-04-09 11:45:38

+0

當你有兩個同名的領域,第二個將總是領域submited。您可以將'name =「foo」'改成'name =「foo []」',發送一個字段數組而不是最後一個字段。 – 2013-04-09 14:20:59

回答

1

由於您可以控制整個解決方案(php和html/javascript),最簡潔的解決方案是爲每個文本區域選擇一個不同的名稱並更改您的php代碼,以便在訪問$_POST數組。


更新:具有一些測試時間後,我無法重現該問題。我用下面的HTML進行測試 - 和它的工作如預期,這意味着兩個ckeditors這裏呈現的,可以單獨提交:

<html> 
<head> 
    <script type="text/javascript" src="ckeditor/ckeditor.js"></script> 
</head> 
<body> 
    <form action="test.php" method="post"> 
     <textarea class="ckeditor" name="the_text"></textarea> 
     <input type="submit"> 
    </form> 

    <form action="test.php" method="post"> 
     <textarea class="ckeditor" name="the_text"></textarea> 
     <input type="submit"> 
    </form> 
</body> 
</html> 

我用的CKEditor 4.1版本

+0

它不僅是最後一個,而且可能會被提交的任何textarea值(腳本在一個循環中運行,因此會生成多個表單,從sql中獲取值並循環繼續,直到所有值都放在一個單獨的表單中編輯) 也改變PHP,所以它可以通過$ _POST採取新的名字是不可能的,因爲沒有控制多少實例可能形成,因此可能會出現多少新名字 – TDsouza 2013-04-09 12:02:36

+0

好吧,我明白了。這使答案的第一部分過時了。已刪除它。現在我和你在一起,當textareas以不同的形式出現時,ckeditor應該工作得很好。 – hek2mgl 2013-04-09 12:04:42

+0

我對第二部分也有點疑惑,考慮到實例的數量是動態的,不能控制將引入多少「名稱」 – TDsouza 2013-04-09 12:09:53