Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取可编辑表中的数据以通过AJAX发送?_Javascript_Jquery_Laravel_Bootstrap Modal - Fatal编程技术网

Javascript 如何获取可编辑表中的数据以通过AJAX发送?

Javascript 如何获取可编辑表中的数据以通过AJAX发送?,javascript,jquery,laravel,bootstrap-modal,Javascript,Jquery,Laravel,Bootstrap Modal,我有一个模态,有一个动态的可编辑表。我正在寻找一种将可编辑表的数据获取到JS变量的方法。然后我可以通过AJAX将这些数据传递给控制器。我试了很多密码。但是我找不到合适的方法。如何获取变量的值 <div class="col-lg-12 mt-4 mb-3"> <div class="table-responsive"> <table class="

我有一个模态,有一个动态的可编辑表。我正在寻找一种将可编辑表的数据获取到JS变量的方法。然后我可以通过AJAX将这些数据传递给控制器。我试了很多密码。但是我找不到合适的方法。如何获取变量的值

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>
成形刀片

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>
剧本

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>

好吧,我想这段代码可能会对你有很大帮助

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>
我建议您在javascript本身中创建动态部分。在我看来,这样你可以更容易地使用数据。以下是如何:

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>
Javascript:

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>
//To use them globally in the script. NOTE: Needs to be above the onload, otherwise javascript does not know the elements yet.
let trElement;
let tdElement;
let inputElement;

window.onload = onload();

function onload() {
    //Create elements
    trElement = document.createElement("tr");
    tdElement = document.createElement("td");
    inputElement = document.createElement("input");

    //Set elements parameters
    inputElement.type = "date";
    inputElement.classList.add("form-control", "form-control-alternative", "date");
    inputElement.name = "opening_invoice[1][date]";

    //Appends
    tdElement.append(inputElement);
    trElement.append(tdElement);
    document.getElementById("opening_invoice_table_body").appendChild(trElement);



    //I do not have jQuery installed but you should create them like this:
    // let inputElement = $('<input/>', {
    //     'class': 'form-control form-control-alternative date'
    //     'name': ...
    // });
}


function createPartOfATable() {
    console.log(inputElement.value);
}
HTML:

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>

请记住,我是用纯Javascript创建的,因为我当时没有安装jQuery。但是我写了一些关于你应该怎么做的例子。另外,jQuery文档为您提供了大量使用jQuery的信息。

我可以找到答案,而且它运行良好。serialize用于通过AJAX将动态表数据数组发送到控制器

                <div class="col-lg-12 mt-4 mb-3">
                    <div class="table-responsive">
                        <table class="table table-hover align-items-center customizable-table text-center" id="opening_invoice_table">
                            <thead class="thead-light">
                                <tr>
                                    <th scope="col">Date</th>
                                    <th scope="col">Detail</th>
                                    <th scope="col">Invoice No</th>
                                    <th scope="col">Amount</th>
                                    <th scope="col">Action</th>
                                </tr>
                            </thead>
                            <tbody id="opening_invoice_table_body">
                                <tr>
                                    <td><input type="date" class="form-control form-control-alternative date" name="opening_invoice[1][date]"></td>
                                    <td><input type="text" class="form-control form-control-alternative detail" name="opening_invoice[1][detail]"></td>
                                    <td><input type="text" class="form-control form-control-alternative invoice-no" name="opening_invoice[1][invoice_no]"></td>
                                    <td><input type="number" class="form-control form-control-alternative amount" name="opening_invoice[1][amount]" min="0" step="any" placeholder="0.00"></td>
                                    <td><a class="btn btn-sm delete-record btn-danger" id="delete_row"><i class="fas fa-trash-alt"></i></a></td>
                                </tr>
                            </tbody>

                            <tfoot>
                                <tr>
                                    <th></th>
                                    <th></th>
                                    <th><label>Total Amount</label></th>
                                    <th><input type="number" class="form-control form-control-alternative amount-calculate" name="total_amount" id="total_amount" placeholder="0.00" readonly></th>
                                    <th></th>
                                </tr>
                            </tfoot>

                        </table>

                        <a class="btn btn-info pull-right add-record mt-2" data-added="0" title="Add Row" id="add_row"><i class="fa fa-plus"></i> Add Row</a>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <div class="col-lg-12 text-right">
                    <button type="submit" class="btn btn-success"><i class="fas fa-download"></i> Save</button>
                    <button type="reset" class="btn btn-success"><i class="fas fa-eraser"></i> Clear</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal"><i class="fa fa-window-close"></i> Close</button>
                </div>
            </div>
        </form>
//添加行 $“添加行”。在“单击”时,函数{ var tr=+ + + + + + ; $'tbody'.appendtr; }; //删除行 $“打开发票表”。在“单击”、“删除行”上,函数事件{ var last=$'tbody tr'。长度; iFast==1{ //无所事事 }否则{ $this.parent.parent.remove; } }; //计算总金额 $OPTING_invoice_表格.在'input','amount',函数上{ 计算的风险值总和=0; $opening\u invoice\u table.amount.eachfunction{ var get_textbox_value=$this.val; 如果$.isNumericget\u文本框\u值{ 计算的\u总计\u总和+=parseFloatget\u文本框\u值; } }; $total_amount.valu计算的总额; }; }; //提交期初发票数据 $“期初发票表单”。在“提交”上,functionevent{ 违约事件; $.ajax{ url:打开/创建发票, 方法:'post', 数据:$this.serialize, 数据类型:'json', 成功:functiondata { $“添加期初发票模式”。模式“隐藏”; 游泳{ 标题:成功!, 文本:期初发票保存成功!, 类型:成功, showconfixton:false, 计时器:1500, }; } } }; @csrf 日期 细节 发票号 数量 行动 总金额 添加行 拯救 清楚的 关
在执行ajax代码时,您是否收到任何错误或消息?这也是一个url:打开发票/创建一个真实的url?如果您在浏览器url中这样写:您的\u主机名/opening\u发票/create是否显示0个错误?在控制台和页面本身上?此外,您似乎正在执行POST请求,因此您将数据从javascript发布到其他内容。如果我理解您的问题,您希望将HTML数据转换为JavaScript。@实际上,我希望的是将可编辑表的值转换为var,并在提交表单时保存到数据库中。我尝试通过硬代码值传递数据。它正在工作。我已经在t中注释了变量
他的密码我自己可能不太清楚,但你的桌子在哪里?在javascript部分,或者是HTML中的标记。我看不出你想要什么数据进入一个variable@Allart我用图片编辑了我的问题。HTML部分用于表的第一行。用于动态添加部分的Javascript部分。啊,我明白了,我假设保存按钮不起作用?使用ajax调用