将表格单元格内容添加到 PHP $_POST


Adding Table Cell Contents to PHP $_POST

根据我的理解,检索 $_POST 数据的唯一方法是使用元素的 name 属性,如下所示:

<INPUT type="text" name="txt">

和 PHP 部分:

<?php $text = $_POST["txt"]; ?>

我有一个包含包含纯文本的单元格的表格,例如:

<td class="textField" id="txt1"> Some text </td>

有没有办法在这些表格单元格中发布文本并使用类或 id 检索它们?也许有一种聪明的方法可以解决这个问题? <td>没有名称属性,因此是我提问的原因。

谢谢!

您可以使用 ajax,通过 javascript 从表中获取值。JQuery 是一个很好的库:

http://api.jquery.com/category/ajax/

$_POST$_GET来自请求。这意味着浏览器将它们与标头一起发送,PHP 为它们提供了一个带有 $_POST$_GET$_COOKIE$_REQUEST 的接口。浏览器不会在请求中发送表的内容。

如果您试图使字段"只读",那么您就以错误的方式处理它。如果字段是只读的,则永远不应信任浏览器重新发送相同的值。

要从许多具有相同名称的表单字段中检索值(因为您在 PHP 中使用循环生成它们),请在字段名称后附加括号。
简单的例子:

<form method="post">
<input type=text name="myfield[]">  
<input type=text name="myfield[]">  
<input type=text name="myfield[]">  
<input type=text name="myfield[]">  
</form>

如果添加到代码中:

<?php print_r($_POST); ?>  

你会注意到 $_POST 变量填充了一个名为 "myfield" 的数组,该数组有 4 个值,从 $_POST['myfield'][0] 到 $_POST['myfield'][3]。然后,您可以在 PHP 中使用 foreach 循环来检索所有值。

最终对

我有用的解决方案是使用 jQuery 获取数据,用 JSON 编码,然后将其添加到其余表单数据的串行数组中。

$("#orderForm").submit(function(e) {
    e.preventDefault();
    // Get NON-INPUT table cell data
    var subtotal = new Array();
    $('#priceTable td.subtotal').each(function() {
        subtotal.push($(this).html());
    });
    // Get all INPUT form data and organize as array
    var formData = $(this).serializeArray();
    // Encode with JSON
    var subArray = JSON.stringify(subtotal);
    // Add to formData array
    formData.push({name: 'sub', value: subArray});
    // Submit with AJAX
    $.ajax({
        url: "submitOrder.php",
        data: formData,
        type: 'post',
        success: function(data) {
            alert(data);
        }
    });
});

在PHP方面:

$subtotals = json_decode($_POST['sub']);