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


Send form row datas to external PHP file

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

我正在尝试将一些数据从表单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"方法。