如何使用地址栏将值从javascript传递给php

时间:2012-05-16 20:54:45

标签: php javascript blackberry

我有.js和.php文件和html页面。我在js文件中包含js文件和js文件中的php文件。

当我转到此页面时,我想使用地址栏将'cat'值从js文件传递到php文件;

  

/demo/convert.html?cat=volume

但我不知道该怎么做。

顺便说一下,这是一个blacberry项目,我不确定我是否可以使用地址栏来传递价值。任何想法都是受欢迎的。

2 个答案:

答案 0 :(得分:4)

使用以下网址测试此示例代码: http://sputnick-area.net/test/index.php?foobar=works_as_a_charm

<?php

$var = $_GET['foobar'];

echo <<<EOF
<html>
<head>
<title></title>
</head>
<body>
demo of using PHP GET variable in Javascript :
<script type="text/javascript">
alert("$var");
</script>
</body>
</html>
EOF

?>

修改

如果您想在JavaScript中处理GET变量,请考虑以下HTML + JavaScript示例:http://sputnick-area.net/test/index.html?foobar=works_as_a_charm

<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var vars = [], hash;
var hashes = window.location.href.slice(
    window.location.href.indexOf('?') + 1
).split('&');

for(var i = 0; i < hashes.length; i++) {
    hash = hashes[i].split('=');
    vars.push(hash[0]);
    vars[hash[0]] = hash[1];
}

alert(vars['foobar']);
</script>
</body>
</html>

答案 1 :(得分:1)

当然可以。调用JS函数时,您必须执行以下操作:

function someFunction(someParameters) {
    //Do whatever you need to do
    window.location = "/demo/convert.html?variableName=" + variable;
}

这将导致页面重新加载,新变量可通过PHP在$_GET数组中访问。例如:

<?php
$name = $_GET['variableName'];
if(length($name) < 3) {
    echo "That is a short name!";
}
?>

页面重新加载(此处使用)是向PHP发送值所必需的,因为它是在服务器端运行的。您唯一的其他解决方案是使用AJAX并动态加载页面内容。然而,这将是最简单的解决方案。

编辑:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}

var urlvariable = getUrlVars()['variableName'];