0

问候 Stackoverflow

如何从 Jquery 设置 php $_GET[] 数组?我有一个与此类似的字符串:$sample_string = "Hi there, this text contains space and the character: &";. 我还有一个包含目的地名称的变量:$saveAs = "SomeVariable";. 在 PHP 中,它看起来如下:$_GET["$SomeVariable"] = $sample_string;.

我如何在 Jquery 中做到这一点?

在此先感谢,拉斯穆斯

4

5 回答 5

2

如果您使用 jQuery,则必须在客户端设置一个 AJAX 请求,该请求将 GET 请求发送到服务器。$_GET[]然后,您可以从服务器端的阵列中提取您在请求中提供的数据。

$(function() {
    var data =  { 
        sample_string: "hi",
        saveAs: "something"
    };
    $.get('/path/to/script.php', data, function(response) {
        alert(response); // should alert "some response"
    });
});

并在script.php

<?php
$sample = $_GET['sample_string']; // == "hi"
$saveAs = $_GET['saveAs']; // == "something"
// do work
echo "some response";
?>
于 2012-09-21T14:06:00.357 回答
2

无法判断您是要从 javascript 获取 GET 参数还是从 jQuery 设置 GET 参数。如果是前者,我喜欢使用这段代码(从我不记得在哪里偷来的):

var urlParams = {};
(function () {
    var match,
        pl     = /\+/g,  // Regex for replacing addition symbol with a space
        search = /([^&=]+)=?([^&]*)/g,
        decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
        query  = window.location.search.substring(1);

    while (match = search.exec(query))
       urlParams[decode(match[1])] = decode(match[2]);
})();

然后你可以打电话

var cake = urlParams['cake'];

获取http://someurl.com?cake=delicious指定的 $_GET 参数

如果要发送 $_GET 参数,可以使用 jQuery 的 $.get() 或 $.ajax() 函数。$.get 函数更简单,这里有文档http://api.jquery.com/jQuery.get/

对于 $.ajax 你会做这样的事情:

var trickystring = "Hi there, this text contains space and the character: &";
$.ajax({
  url:'path/to/your/php/script.php',
  data: {
    'getParam1':trickystring,
    'getParam2':'pie!'
  },
  type:'GET'
});

现在在 PHP 中,您应该能够通过以下方式获得这些:

$trickystring = $_GET['getParam1'];
$pie = $_GET['getParam2'];

希望这些例子能得到你想要的东西。(得到它?)

于 2012-09-21T14:08:10.860 回答
1

如果$sample_string是你在 jquery 中想要的,你可以做 var sample_str = '<?php echo $sample_string; ?>';,然后在sample_str任何你想要的地方使用 js 变量。

现在,如果您想在 jquery 中设置 $_GET,则可以使用 ajax 函数。

 $.ajax({
 url:'path/to/your/php_script.php',
 data: {
'param1': 'pqr',
'param2': 'abc'
},
 type:'GET'
});
于 2012-09-21T14:06:53.857 回答
0

你的意思是你认为这看起来像 $_GET[$saveAs] = $sample_string 。$_GET 是一个变量,用于通过 URL 将信息从一个页面发送到另一个页面。在不是服务器端的 jQuery 中这样做是没有意义的。如果要动态设置 $_GET 变量以将其发送到另一个页面,则必须将其包含在 URL 中,例如:

/index.php?'+javascriptVariable_name+'='+javascriptVariable_value+';
于 2012-09-21T14:12:44.007 回答
-1

$_GET 只是一个 URL 参数。所以你可以像这样访问/index.php?id=1

echo $_GET['id'];

看看这篇文章,它展示了使用 ajax 加载东西的所有方法:

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

于 2012-09-21T13:57:52.283 回答