【发布时间】:2018-06-20 09:27:57
【问题描述】:
我有一个带有一些 select 和 textarea 的 html 页面,它们没有被 <form> 标签包围,还有一个运行以下脚本的按钮:
function sendReservationData(){
var partenzaSel = $( "#selPartenza" ).val();
var partenzaTArea = $( "#textP" ).val();
var destinazioneSel = $( "#selDestinazione" ).val();
var destinazioneTArea = $( "#textD" ).val();
var nPasseggeri = $( "#selPasseggeri" ).val();
var baseURL = window.location.origin;
var serviceURL = baseURL + window.location.pathname;
$.post(serviceURL, {'partenzaSel' : partenzaSel, 'partenzaTArea' : partenzaTArea, 'destinazioneSel' : destinazioneSel, 'destinazioneTArea' : destinazioneTArea, 'nPasseggeri' : nPasseggeri},
function(response){
location.reload();
}
); }
我使用这种方式来构建 url,因为我正在研究 xamp,当我完成时,我必须将我的代码上传到我不知道完整路径或正确 url 的大学服务器中的网站。 当我单击按钮时,我想使用我向您展示的脚本发送的变量来启动事务并对数据库进行一些查询,以便查看是否能够从 select 中收集数据和textarea,在同一个页面,在按钮之后,我写了如下代码,完成与数据库的交互。
<?php
$Partenza = $partenzaSel = $partenzaTArea = $destinazioneSel = $destinazioneTArea = $nPasseggeri = "";
if (isset($_POST['partenzaSel']) and isset($_POST['partenzaTArea']) and isset($_POST['destinazioneSel']) and isset($_POST['destinazioneTArea']) and isset($_POST['nPasseggeri']) ){
$partenzaSel = $_POST['partenzaSel'];
$partenzaTArea = $_POST['partenzaTArea'];
$destinazioneSel = $_POST['destinazioneSel'];
$destinazioneTArea = $_POST['destinazioneTArea'];
$nPasseggeri = $_POST['nPasseggeri'];
echo $partenzaSel + $partenzaTArea + $destinazioneSel + $destinazioneTArea + $nPasseggeri + "prova";
}
?>
回显向我显示了任何内容,因此我尝试获取保存在 javascript 中的变量不起作用,我无法使用该值继续我的工作。我错了什么?我能怎么做?谢谢你的帮助。
【问题讨论】:
-
由于
location.reload()将从服务器重新加载/刷新页面,因此您看不到回显值也就不足为奇了 -
开始做“var_dump($_POST);”并查看哪些(如果有)变量正在通过以及它们的值是什么。虽然我觉得因为您正在重新加载位置,但实际上并没有提交表单。您将信息发送到脚本,由脚本处理,然后刷新页面。如果您要让它将变量写入文本文件,我确定您会发现它们正在到达那里
-
将
location.reload()替换为console.log(response)查看浏览器调试日志 -
同样在 PHP 中,连接符是
.点而不是+加号! -
我尝试查看控制台。它向我展示了我的源代码以及回声的响应,并且有我想要的值。我不知道为什么页面不打印回声,但在我的最终代码中我不需要它。我只希望变量的值与数据库交互,并且单击后变量似乎不是空的,所以我可以尝试继续我的工作,看看我将编写的查询是否有效。