使用 Jquery 将 Javascript 值转换为 PHP

发布于 2024-11-05 07:31:04 字数 413 浏览 3 评论 0原文

我的javascript文件:

var ms = 3000;
$.get("curl.php", { test: ms } );

我的curl.php:

$ms = $_GET("test");
echo $ms;

Firefox firebug说:

致命错误:函数名称必须是字符串 C:\Users\Jansu\Documents\workspace\php\curl.php 第 2 行

可能是什么问题?

更好的是 javascript 和 php 代码位于同一个文件中,这样我就不必发布/获取任何内容。只是以某种方式将 javascript 传递给 php。

My javascript file:

var ms = 3000;
$.get("curl.php", { test: ms } );

My curl.php:

$ms = $_GET("test");
echo $ms;

Firefox firebug says:

Fatal error: Function name must be a string in
C:\Users\Jansu\Documents\workspace\php\curl.php on line 2

what could be the problem?

Even better would be when the javascript and php code is in the same file, so I don't have to post/get anything. Just somehow pass javascript to php.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

早乙女 2024-11-12 07:31:04

您需要 [],而不是 () ( docs):

$ms = $_GET["test"];

重新编辑:

更好的是 javascript 和 php 代码位于同一个文件中,这样我就不必发布/获取任何内容。只是以某种方式将 javascript 传递给 php

即使它们位于同一个文件中,它们也会在完全不同的地方执行。 JavaScript 在客户端执行,PHP 在服务器执行。要将数据从客户端发送到服务器,必须将数据发送到那里。 Ajax(您的做法)是您在不导致整个页面刷新的情况下执行此操作的主要方式,因此您走在正确的轨道上。

You want [], not () (docs):

$ms = $_GET["test"];

Re your edit:

even better would be when the javascript and php code is in the same file, so i do not have to post/get anything. just somehow pass javascript to php

Even if they're in the same file, they're executed in completely different places. The JavaScript is executed on the client, the PHP is executed on the server. To get data from the client to the server, it has to be sent there. Ajax (the way you did it) is the primary way you do that without causing a full page refresh, so you're on the right track.

狼性发作 2024-11-12 07:31:04

您没有提到是否单独清理数据,而是提到 filter_input 函数 比直接调用 $_GET 更安全。

此外,对于 AJAX 调用,POST 通常被认为比 GET 更好,因为它没有相同的字符串长度限制,也稍微安全一些。

$ms = filter_input(INPUT_POST, 'test', FILTER_SANITIZE_STRING);

You don't mention if you are sanitising your data separately, but the filter_input function is more secure than calling $_GET directly.

Also POST is generally considered better than GET for AJAX calls as it doesn't have the same string length limit, slightly more secure too.

$ms = filter_input(INPUT_POST, 'test', FILTER_SANITIZE_STRING);
一指流沙 2024-11-12 07:31:04
<script type="text/javascript">
 var ms = 9000;
function test()
{
    $.ajax({ url: "a.php",
         data: {"test":ms},
         type: 'get',
         success: function(output) {
                      $('#testing').html(output);
                  }
    });
}
test();
</script>
<?php
$ms = $_GET["test"];
echo "$ms";
?>
<div id="testing">
</div>

您可以在任何 HTML 元素中回显输出。这里我用的是div。

<script type="text/javascript">
 var ms = 9000;
function test()
{
    $.ajax({ url: "a.php",
         data: {"test":ms},
         type: 'get',
         success: function(output) {
                      $('#testing').html(output);
                  }
    });
}
test();
</script>
<?php
$ms = $_GET["test"];
echo "$ms";
?>
<div id="testing">
</div>

You can echo the output in any HTML element. Here i'm using div.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文