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

时间:2012-06-01 21:01:03

标签: php html

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

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

和PHP部分:

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

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

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

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

谢谢!

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

$_POST$_GET来自请求。这意味着浏览器使用标头发送它们,PHP通过$_POST$_GET$_COOKIE$_REQUEST为它们提供了一个界面。浏览器不会在请求中发送表的内容。

如果你试图让一个字段“只读”,你就会采用错误的方式。如果字段是只读的,则永远不要相信浏览器重新发送相同的值。

答案 2 :(得分: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”的数组,该数组有4个值,从$ _POST ['myfield'] [0]到$ _POST ['myfield'] [3]。然后,您可以在PHP中使用foreach循环来检索所有值。

答案 3 :(得分: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']);