将表单行数据发送到外部PHP文件



我需要一些帮助来解决问题。

我正在尝试将一些数据从表单ROW发送到php文件。

这是第一个php代码(它在echo中,值来自MySQLi查询):

<form id="comedivid" method="post">
    <input class="numer-qua" type="number" id="dadivid" min="0" max=".$_GET['qua']." autofocus autocomplete="off" name="dadivid" maxlength="4" size="5">
    <input type="hidden" value="".$row["id_tes"]."" name="ord" id="ord">
    <input type="hidden" value="".$_GET['codice']."" name="cod" id="cod">
    <input type="hidden" value="".$_GET['qua']."" name="arr" id="arr">
    <input type="hidden" value="".$row['descri']."" name="desc" id="desc">
    <input type="hidden" value="".$row['unimis']."" name="um" id="um">
    <input type="hidden" value="".$row['quanti']."" name="qua" id="qua">
    <input type="hidden" value="".$row['prelis']."" name="pre" id="pre">
    <input type="hidden" value="".$row['sconto']."" name="sco" id="sco">
    <input type="hidden" value="".$row['codvat']."" name="cva" id="cva">
    <input type="hidden" value="".$row['pervat']."" name="iva" id="iva">
    <input type="hidden" value="".$row['codric']."" name="ric" id="ric">
    <button id="dividili" class="btn btn-blue" type="submit"><i class="fa fa-copy"> Dividi Riga</i></button>
            n";

表格包含在表格中。查询可能会给出多个结果。

这是我的AJAX代码:

$("#dividili").click(function(){
$(this).closest("form#comedivid").submit(function(event) {
    event.preventDefault();
    var dadivid = $("#dadivid").val();
    var ord = $("#ord").val();
    var cod = $("#cod").val();
    var arr = $("#arr").val();
    var desc = $("#desc").val();
    var um = $("#um").val();
    var qua = $("#qua").val();
    var pre = $("#pre").val();
    var sco = $("#sco").val();
    var cva = $("#cva").val();
    var iva = $("#iva").val();
    var ric = $("#ric").val();

    $.ajax({
        type: "POST",
        url: "../../modules/acquis/dividi.php",
        data: "dadivid=" + dadivid + "&ord=" + ord + "&cod=" + cod + "&arr=" + arr + "&desc=" + desc + "&um=" + um + "&qua=" + qua + "&pre=" + pre + "&sco=" + sco + "&cva=" + cva + "&iva=" + iva + "&ric=" + ric,
        success: function(){alert('success');}
    });
});

});

它不起作用,没有数据发送到URL。

是因为表单在更多的行中吗?或者我的代码有错误吗?

我也尝试了序列化,但没有结果。

这是代码:

$("#dividili").click(function(e){ 
    $.ajax( {
      type: "POST",
      url: "../../modules/acquis/dividi.php",
      data: $('#comedivid').serialize(),
      success: function( response ) {}
    });
});

非常感谢你的帮助!

我建议使用serialize():

$("#dividili").click(function(){
$(this).closest("form#comedivid").submit(function(event) {
    event.preventDefault();
    var form_data = $('form#comedivid').serialize();
    // or
    var form_data = $(this).serialize();
    // try to output that just to make sure you are doing it right
    console.log( form_data );
    // or
    alert( form_data );
    $.ajax({
        type    : "POST",
        url     : "../../modules/acquis/dividi.php",
        data    : form_data,
        success : function(){alert('success');}
    });
});

既然你已经尝试过了,如果输出正常,那么PHP就有问题了,所以试着在文件的开头输出收到的内容:

<?php
echo '<pre>';
print_r( $_POST );// or $_REQUEST for both $_POST and $_GET
echo '</pre>';
die;
// the rest of your code...

如果在PHP中一切都很好,那么您需要确保使用正确的方式来获取数据,如$dadivid = $_POST["dadivid"];

jQuery"serialize"方法使数据类似于get查询表单。

因此,在apache配置中,数据长度会受到限制。

请尝试使用此自定义方法。

(function($) {
    $.fn.serializeObject = function () {
        "use strict";
        var result = {};
        var extend = function (i, element) {
            var node = result[element.name];
            if ('undefined' !== typeof node && node !== null) {
                if ($.isArray(node)) {
                    node.push(element.value);
                } else {
                    result[element.name] = [node, element.value];
                }
            } else {
                result[element.name] = element.value;
            }
        };
        $.each(this.serializeArray(), extend);
        return result;
    };
});

如何使用相同的默认jQuery"serialize"方法。

最新更新