0

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

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

和 PHP 部分:

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

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

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

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

谢谢!

4

4 回答 4

1

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

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

于 2012-06-01T21:15:35.823 回答
0

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

如果您试图将字段设置为“只读”,那么您将走错路。如果一个字段是只读的,你永远不应该相信浏览器会重新发送相同的值。

于 2012-06-01T21:02:24.893 回答
0

要从许多具有相同名称的表单字段中检索值(因为您在 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”的数组,该数组具有从 $_POST['myfield'][0] 到 $_POST['myfield'][3] 的 4 个值。然后,您可以在 PHP 中使用 foreach 循环来检索所有值。

于 2012-06-01T22:14:09.490 回答
0

最终为我工作的解决方案是使用 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']);
于 2012-06-06T17:15:21.170 回答