将相同名称的文本框的值传递给jquery,然后传递给php页面,以便将值存储到数据库中


pass values of textboxes of the same name to jquery and then to php page for storing the values to database

我有一个文本框列表,如下所示:

` <table id="div1" style="width:100%;">
          <tr>
            <td>
              <label>Question Text</label>
            </td>
                <td colspan="5">        
                <textarea rows="4" cols="500" name="questiontext" id="questiontext" > <?php print $view->questions->getQuestion_Text() ?></textarea>
                </td>
            </tr>
                        <tr>
                        <td> <label>Option a) </label></td>
                        <td colspan="5"> <textarea rows="1" cols="200" name="Optiontext[]" id="text1"> </textarea> </td>
                    </tr>
                    <tr>
                        <td> <label> Option b) </label></td>
                        <td colspan="5"> <textarea rows="1" cols="200" name="Optiontext[]" id="text2"> </textarea> </td>
                    </tr>
<tr>
<td>
</td>
</tr>
 </table>`

我需要将值传递给jquery函数,如下所示:

      $(document).ready(function(){
           $('#question').live('submit',function(){
            var params={};
            params.action='saveQuestion';
            params.questionid=$('#questionid').val();
            params.questiontext=$('#questiontext').val();
            return false;
        })
});

我的问题是如何将textarea的值传递给jquery函数,因为textarea可以动态创建。

我尝试直接在php中访问textarea的值,如下所示,但没有传递值:

            $option_key = 1;
            for($i = 0;$i<= count($_POST['Optiontext']);$i++){
                 $option = $_POST['Optiontext'][$i];
                 if(isset($option))
                    {               
                        $query_options="INSERT INTO `XXX`(`Question_ID`, `Option_Key`, `Option_Value`) VALUES ($max_id,'$option_key','$option')";   
                        $sql = mysql_query($query_options)or die($query_options."<br/><br/>".mysql_error());
                        $option_key = $option_key + 1;  
                    }
               }// for loop ends

每个文本区域的内容都作为逗号分隔的变量"Optiontext[]"发布到表单中。由于可以在文本区域中添加逗号,因此尝试将数据拆分回正确的字段可能会很有趣!一个更好的解决方案可能是使用有限数量的具有唯一名称的文本区域字段,或者根据需要使用javascript/jQuery动态创建它们。

我能够通过映射函数传递文本框的值,如下所示

  $(document).ready(function(){
       $('#question').live('submit',function(){
        var params={};
        params.action='saveQuestion';
        params.questionid=$('#questionid').val();
        params.questiontext=$('#questiontext').val();
        var Optiontext = [];
        Optiontext = $('textarea[name^="Optiontext''["]').map(function() {
                      var value_textarea = $(this).val();
                    if(value_textarea && value_textarea != ' ')
                      { 
                            return $(this).val();   
                      }
        }).get();
          params.Optiontext=Optiontext;

        return false;
    }) });