【问题标题】:Send $_SESSION['id'] in xhr.send() post在 xhr.send() 帖子中发送 $_SESSION['id']
【发布时间】:2015-05-05 12:30:27
【问题描述】:

我有输入类型 number 并使用 id matiere 选择,在我的 ajax 方法中输入数字触发函数 go() 中的 oninput ,它与一个值 matiere 一起工作正常

 <label>Niveau:</label>
 <input type="number" oninput ="go()" id="nivo" name="nivo" max="4" min="1" required autocomplete="off"  maxlength="23" />

  <label>Matière</label>
  <select name="matiere" id="matiere" >

我需要做的就是在xhr.send()中发送$_SESSION['id']

            function getXhr(){
          var xhr = null;
               if (window.XMLHttpRequest)  // Mozilla, Safari,...
                   xhr = new XMLHttpRequest();
             else if(window.ActiveXObject){ // Internet Explorer
               try {   
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
                   } catch (e) {
                        xhr = new ActiveXObject("Microsoft.XMLHTTP");
                    }
            }
            else { // XMLHttpRequest non supporté par le navigateur
                xhr = false;
                    }
                      return xhr;        
          }

        function go(){
        //  alert(" test in go");
             var xhr = getXhr();
            // On défini ce qu'on va faire quand on aura la réponse
            xhr.onreadystatechange = function(){
                // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
            if (xhr.readyState == 4 &&    xhr.status == 200) {
                    leselect = xhr.responseText;
                    // On se sert de innerHTML pour rajouter le valeur au liste_profil
                    document.getElementById("matiere").innerHTML = leselect;  // emplacement de resultat 
                    }
            }
             // Ici on va voir comment faire du post
            xhr.open("post","getmatiere.php",true); // <  fichier d'action
            // ne pas oublier ça pour le post
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            // ne pas oublier de poster les arguments

            //  numero
            nivo = document.getElementById('nivo');  // <==  paramètre 1 a envoyer
            nv= nivo.value;   // <== prendre le valeur de paramètre 1  envoyer

            // valeur de  $_SESSION['id'] 

                // << here what i need to help  for >> 
                //idS
         //  send 

           // xhr.send('nivo=nv&id=idS');
            xhr.send("nivo="+nv);  // <== nivo envoyer

        }
        </script>

感谢您的帮助

【问题讨论】:

  • 您开始会话了吗?你的问题不清楚
  • 是的,我确实开始了会话

标签: php ajax session


【解决方案1】:

如果您正在查找会话标识符,通常您会查看 PHPSESSID(除非您提供了自定义名称)cookie 或查询参数。你可以这样获取它:

function getCookie(name)
{
    var re = new RegExp(name + "=([^;]+)");
    var value = re.exec(document.cookie);
    return (value != null) ? unescape(value[1]) : null;
}

Source

然后拨打var session_id = getCookie('PHPSESSID');

如果cookies被禁用,您可以通过query params阅读。

现在,如果您实际上是在寻找会话属性,则只能在服务器端完成,除非您在从服务器发送响应时选择将此属性粘贴在 cookie 或请求 URL 中的参数中。

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多