在 AJAX 中传递多个变量

Passing multiple variables in AJAX?

本文关键字:变量 AJAX      更新时间:2023-09-26

我一直在尝试在线遵循一个示例,其中我使用 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;
?>

快速回答...

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,请参阅以下填充程序以了解 Array.prototype.mapObject.keys