0

我一直在尝试在线遵循一个示例,在该示例中,我使用 AJAX 将变量传递给 PHP

它有效,但我设法通过使用 AJAX 只传递了 1 个变量,但我需要传递多个变量,我尝试添加它但它没有用任何帮助将不胜感激

我试图像这样添加它,var url = 'ajax.php?js_var=' + js_var + gender;但它只是在同一行打印出来。

 <html>
  <head>
    <title>Pass variable from PHP to JavaScript - Cyberster's Blog'</title>
  </head>
  <body> 
    <a href="#" id="link">Click me!</a>
    <div id="update"></div>

    <script type="text/javascript">
        var js_var = "M";    
        var gender = "hey";
        document.getElementById("link").onclick = function () {        
            // ajax start
            var xhr;
            if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); // all browsers
            else xhr = new ActiveXObject("Microsoft.XMLHTTP");  // for IE

            var url = 'ajax.php?js_var=' + js_var + gender;
            xhr.open('GET', url, false);
            xhr.onreadystatechange = function () {
                if (xhr.readyState===4 && xhr.status===200) {
                    var div = document.getElementById('update');
                    div.innerHTML = xhr.responseText;
                }
            }
            xhr.send();
            // ajax stop
            return false;
        }
    </script>
  </body>
  <?php
    if (isset($_GET['js_var'])) $php_var = $_GET['js_var']  ;
    else $php_var = "<br />js_var is not set!";

     if (isset($_GET['gender'])) $php_var1 = $_GET['gender'] ;
    else $php_var1 = "<br />js_var is not set!";

echo $php_var;
echo $php_var1;

?>
4

1 回答 1

2

快速回答...

var url = 'ajax.php?js_var=' + js_var + '&gender=' + gender;

更好的答案

var params = {
    "js_var": js_var,
    "gender": gender
};

var queryParams = Object.keys(params).map(function(k) {
    return encodeURIComponent(k) + '=' + encodeURIComponent(params[k]);
}).join('&');

var url = 'ajax.php?' + queryParams;

如果您需要支持 IE 版本 < 9,请参阅以下 shimsArray.prototype.mapObject.keys.

于 2013-11-10T23:17:32.550 回答