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