我在服务器上有一个PHP文件,需要从网页上的客户端使用中获取动态值才能查询我的数据库。用户将单击一个链接(以及将用户定向到新选项卡)获取链接所连接的文档位置字符串。我目前正在尝试使用jQuery / AJAX和XHR调用将这些值传递给服务器端代码,但是当我运行它时,似乎PHP无法正常执行。这是JavaScript代码:
// Clicking the link
$('a.docs').on('click', function(){
// Getting the values needed for the query from existing table
var theData = subtable.row($(this).parents('tr')).data();
// The document string
var thedoc = theData[7];
// Pass the document value to the PHP file on the server
$.post('https://example.com/TEST/dashboard/change.php', {
document: thedoc
});
// Make XHR call to execute the PHP file on the server
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://example.com/TEST/dashboard/change.php", true);
xhr.send();
});
如您所见,我尝试在进行thedoc
XHR调用之前将GET
的值发送到服务器上的文件。以下是服务器上的PHP代码:
<?php
// The line that grabs the document variable being passed
$document = $_POST['document'];
// ... MySQL query stuff using $document as parameter...
?>
当我测试它并单击网页上的链接时,JavaScript正确地抓取文档链接变量,它只是传递没有工作。关于我做错的任何想法?
答案 0 :(得分:1)
我无法发表评论:(
我同意jorgonor1。
您正在向服务器执行 2个单独的请求。
第一个。您正在使用JQUERY在$ .POST(...)部分中将数据发送到服务器。从示例代码中,忽略结果。
然后,您使用xhr请求执行通用页面的干净请求。
如果您使用$ .POST(),并希望对服务器的结果执行某些操作,请尝试:
$.post('https://example.com/TEST/dashboard/change.php', {document: thedoc}, function(result){
//do something with the data returned form the server, server response stored in "result" variable
});
请参阅W3Schools
上的示例答案 1 :(得分:0)
如果你想使用jQuery,试试
let data = form.serialize();
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
或者如果要使用xhr,则需要将数据作为键/值对字符串发送:
let data = "document=thedoc"