【发布时间】:2020-05-01 13:18:08
【问题描述】:
正如我问here 我想知道如何将数据从一个简单的 JS 函数传递到 php,并在那里记录。
我找到了this 答案并尝试关注它。这是我现在的代码(都在同一个文件中)
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"> </script>
</head>
<body>
<script>
function getClientScreenResolution() {
var screenResolutionW = screen.width;
var screenResolutionH = screen.height;
console.log(screenResolutionW + ' ' + screenResolutionH)
$.post("index.php", {screenResolutionW: screenResolutionW, screenResolutionH: screenResolutionH})
}
</script>
<script type="text/javascript">
getScreenResolution();
</script>
</body>
</html>
<?php
$screenResolutionW = $_POST['screenResolutionW'];
$screenResolutionH = $_POST['screenResolutionH'];
if(isset($_POST['screenResolutionW'])) {
$fh = fopen('log.txt', 'a');
fwrite($fh, 'Screen res: '."".$screenResolutionW .'x'."".$screenResolutionH
."\r\n");
fclose($fh);
}
?>
但是,这不起作用。 我不知道如何解决这个问题,每当我尝试用谷歌搜索这个问题时,人们使用更高级的方法,我什至不知道如何开始。
编辑:我的 PHP 和 HMTL 在同一个文件 (index.php) 中。 编辑 2:为清楚起见,删除了旧代码。
这会导致以下错误消息:
Notice: Undefined index: screenResolutionW in index.php on line 153
Notice: Undefined index: screenResolutionH in index.php on line 154
【问题讨论】:
-
在您的 PHP 代码中,您正在提取从不存在的密钥,因此您需要将它们发送到您的 JS 代码中,就像这样
$.post("index.php", {screenResolutionW: screenResolutionW, screenResolutionH: screenResolutionH} -
您必须在 $.post 中提供 @SaymoinSam 的 JSON 格式字符串中学习 som 基础知识。
-
为什么要改函数?
-
stackoverflow.com/a/61544141/12112111,我想我应该试试。我会把它改回你的建议。
-
现在检查我编辑的答案,我在这里展示了如何调用该函数。
标签: javascript php ajax post