【问题标题】:AJAX filling table input array fieldsAJAX填表输入数组字段
【发布时间】:2021-02-03 20:59:59
【问题描述】:

我有一个表格,其中包含一个带有输入字段的表格。我想根据第一个的选定值更新第二个的选择输入字段 使用 AJAX

<td><select class='form-control select2' id='name[]' name='name[]' onchange="getSize(this);">
                    <option> select </option>
                    
                <?php
                $sql = "SELECT DISTINCT table_name FROM m_table ORDER BY 1 ASC";
                $res = pg_query($conn,$sql);
                $num_row = pg_num_rows($res);
                if($num_row > 0)
                        {
                            while ($row=pg_fetch_row($res))
                            {
                                echo '<OPTION VALUE="'.trim($row['0']).'" >'.trim($row['0']).'</OPTION>';
                            }
                        }
                ?>                  
                                                
                </select>
            </td>       
            <td><select class='form-control select2' id='m_size[]' name='m_size[]' >
            <!------------------------------------>             
            
            <!------------------------------------>
                </select>
            </td> 

如何在 jquery 中获取 name[] 的值? 如何更新 m_size[] 的值?

【问题讨论】:

    标签: javascript php arrays ajax html-table


    【解决方案1】:

    我对这个问题感到不安。希望这个答案对某人有所帮助。

    function getSize(e){    
        
        var tr = $(e).closest("tr");
        
        var rowindex = tr.index() ; 
        
        var NAME = document.forms[0].elements["name[]"];
    
        var name = NAME[rowindex].value;
        
        var gsizeOptions = null;
    
            $.ajax({
                      url:"getSize.php",
                      type:"POST",
                      data:{name:name},     
                      dataType: 'html',
                      //async: false,             
                      success: function(data){
                        console.log(data);
                        sizeOptions = data; 
           var MSIZE= document.forms[0].elements["m_size[]"];
           $(MSIZE[rowindex]).append(sizeOptions);      
                          }         
                     }); 
    
        }
    

    【讨论】:

    • 使用async: false 是一种可怕的做法,永远不应该使用,并且已被浏览器供应商弃用。您需要做的就是在 success 回调中进行追加
    • 感谢您的宝贵意见。我已经编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 2016-02-27
    相关资源
    最近更新 更多