根据我的理解,检索$ _POST数据的唯一方法是使用元素的name
属性,如下所示:
<INPUT type="text" name="txt">
和PHP部分:
<?php $text = $_POST["txt"]; ?>
我有一个包含纯文本的单元格的表格,例如:
<td class="textField" id="txt1"> Some text </td>
是否有在这些表格单元格中发布文本并使用类或ID检索它们?也许有一种聪明的方法来解决这个问题? <td>
没有名称属性,因此是我提问的原因。
谢谢!
答案 0 :(得分:1)
您可以使用ajax,使用javascript从表中获取值。 JQuery是一个很好的库:
答案 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']);