具有相同名称的textarea

具有相同名称的textarea

问题描述:

多的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

由于您可以控制整个解决方案(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