【问题标题】:Jquery set PHP $_GET arrayjQuery 设置 PHP $_GET 数组
【发布时间】:2012-09-21 13:56:38
【问题描述】:

问候 Stackoverflow

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

如何在 Jquery 中执行此操作?

提前致谢,拉斯穆斯

【问题讨论】:

  • 更多上下文会有所帮助。你到底想做什么?
  • 获取 '$_GET["somevar"] = "Some String";' 的 jquery 版本抱歉描述太复杂了。
  • 简而言之,您将不得不在客户端使用 AJAX 执行 GET 请求(在 jQuery-land 中为$.get('/my/script.php', { something = "hi" }, function() { /* callback */ }))。 JavaScript 无法直接访问您的 PHP 变量。
  • @dotTutorials 这非常模糊。您是否正在寻找获取请求?您是否希望从 javascript 访问查询字符串参数?从你的问题中你想到的目标是什么?

标签: php jquery arrays get


【解决方案1】:

如果您使用 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";
?>

【讨论】:

    【解决方案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'];
    

    希望这些示例得到您想要的。 (明白了吗?)

    【讨论】:

      【解决方案3】:

      如果$sample_string 是您在 jquery 中想要的,您可以这样做 var sample_str = '&lt;?php echo $sample_string; ?&gt;'; 然后在任何你想要的地方使用 js 变量 sample_str

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

       $.ajax({
       url:'path/to/your/php_script.php',
       data: {
      'param1': 'pqr',
      'param2': 'abc'
      },
       type:'GET'
      });
      

      【讨论】:

        【解决方案4】:

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

        /index.php?'+javascriptVariable_name+'='+javascriptVariable_value+';
        

        【讨论】:

        • 没错,但是;如果字符串包含字符“&”,则此技术将不起作用。
        • 是的,这是真的。但是您可以将 javascript 中的“&”字符转换为另一个有效字符,然后在另一个页面的 php 中对其进行解码。
        【解决方案5】:

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

        echo $_GET['id'];
        

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

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

        【讨论】:

        • 我明白了!给我一点时间。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-25
        • 1970-01-01
        • 1970-01-01
        • 2010-12-22
        • 1970-01-01
        • 1970-01-01
        • 2014-07-04
        相关资源
        最近更新 更多