如何从jQuery到PHP调用函数? - php

PHP:

$product_code = $_GET['product_code'];
$countryCode = getCountryCode();
<script src="js/register_script.js" type="text/javascript"></script>

jQuery:

function getCountryCode() {
    countryCode = qrcode_getinfo(qrCode1,"mfg_c_a_code",0)
    return countryCode;
} 

我想从jquery中获取国家代码以执行一些验证任务,但是,我无法检索国家代码。任何想法我应该怎么做才能工作?请注意,该库已被调用。 (我已经阅读了示例,但并不太了解它是如何工作的。)

参考方案

不能直接从JavaScript调用PHP函数,反之亦然。部分原因是因为@Pekka表示JS在客户端(在您的浏览器中)运行,而PHP在服务器端(在您的服务器上)运行。

但是,可以将AJAX用于您的目的:

的HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

<script type="text/javascript">
function getCountryCode()
{
    countryCode = qrcode_getinfo(qrCode1,"mfg_c_a_code",0)
    return countryCode;
}   

function doAjax(){
    var countryCode = getCountryCode();
    $.ajax({
        'url'     : '<THE_URL_TO_YOUR_PHP>?countryCode=' + countryCode,
        'method'  : 'GET',
        'success'  : function(data){
             console.log(data);
             // do your handling here
        },
        'error'   : function(data){
            console.log(error);
            // this function is executed on an HTTP error
        }
    });
}
</script>

的PHP

这是您的php文件,可以进行验证。原则上,它是与上述输出html的文件不同的文件。

$countrycode = $_GET['countryCode'];
# handle countrycode
echo "<What you want to return to JS>";

编辑

关于如何将session变量获取到js的其他问题。

我将在浏览器中导航到您的页面时,会发生以下情况:如果我请求扩展名为.php的文件,则PHP处理程序将在其上运行。该处理器将标记<?php?>之间的所有代码标识为PHP,从而运行所有这些代码。如果遇到echo语句,它将在php块的位置回显特定的值。
PHP完成处理后,将页面提供(提供)到您的浏览器,在该页面中,页面将被解释为HTML / javascript / ...的组合。Javascript将标记<script></script>之间的所有内容解释为javascript。

因此,如果我们在哪里向服务器上的index.php?par=val发出请求,而index.php

<script type="text/javascript">
    function doStuff(){
        var param = <?php echo json_encode($_GET['par']);?>;
    }
</script>  

json_encode函数可确保变量采用正确的json格式。当然,您可以将'$ _GET ['par'];更改为所需的值。)

记住,PHP只关心<?php?>标记之间的内容,因此将输出:

<script type="text/javascript">
    function doStuff(){
        var param = "val";
    }
</script>

当然,您将需要对其进行编辑以使其符合您的要求,但这是将参数从PHP传递到客户端(JS)的基础

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP JQuery复选框 - php

我有以下片段。 var myData = { video: $("input[name='video[]']:checked").serialize(), sinopse: $("#sinopse").val(), dia: $("#dia").val(), quem: $(&#…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…