【发布时间】:2020-07-02 16:42:37
【问题描述】:
专家,我的 php 没有显示输入字段的第一个值,但 console.log 显示正确
console.log
PHP 输出
function summary() {
$(document).ready(function (e) {
var date = $("#dddeliverydate").val();
var soid = $("#sssoid option:selected").val();
var form = $("#formsum").serialize();
console.log(form);
$.ajax({
url: "test.php",
method: "POST",
data: "&date=" + date + "&soid=" + soid + "&form=" + form,
success: function (data) {
var w = window.open("about:blank", "windowname");
w.document.write(data);
},
});
});
}
下面是我的 PHP 代码
<?php
for ($count = 0; $count < count($_POST['invoiceno']); $count++) {
$data = array(
$invoiceno = $_POST['invoiceno'][$count],
$amount = $_POST['finalamount'][$count],
);
echo "Invoice NO " . $invoiceno . " Amount " . $amount . '<br>';
}
?>
我做错了什么需要你的帮助提前谢谢
【问题讨论】:
-
如果只是传递一个对象会更容易:
data: {date: '...', soid: '...', form: '...'} -
但是,您发布的 ajax 代码似乎与 PHP 代码或控制台日志无关。他们使用完全不同的参数。在您的 ajax 中,您在 PHP 代码和控制台日志中使用
invoiceno和finalAmount时传递了date、soid和form。看起来完全不相关。 -
能否请您为我重新生成代码,我将不胜感激
-
再次查看代码,可能是
form包含这些参数。如果是这种情况,您需要执行$_POST['form']['invoiceno']和$_POST['form']['finalamount']。在您的 PHP 代码中,执行var_dump($_POST)并检查它实际包含的内容。 -
如果您不想这样做,请尝试将:
"&date=" + date + "&soid=" + soid + "&form=" + form,更改为"date=" + date + "&soid=" + soid + "&" + form,(没有form=)。
标签: javascript php html ajax