如何从jquery调用函数到php?

时间:2015-09-21 08:06:54

标签: php jquery

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获取我的国家代码来执行一些验证任务,但是,我无法检索国家/地区代码。知道我应该怎么做才能工作?请注意,该库已被调用。 (我已经阅读了一些例子,但是真的不明白它是如何运作的。)

1 个答案:

答案 0 :(得分:4)

无法直接从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-block 位置的特定值。 完成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)的基础