在xhr.send()帖子中发送$ _SESSION ['id']

时间:2015-05-05 12:30:27

标签: php ajax session

我有输入类型编号,并在我的ajax方法中使用id matiere,输入数字火功能go()中的输入进行选择,并且使用一个值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" >

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

            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>

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果您正在寻找会话标识符,通常您会查看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');

如果禁用了Cookie,您可以通过query params阅读。

现在,如果您实际上正在寻找会话属性,那么只能在服务器端进行,除非您选择在服务器发送响应时将此属性粘贴到请求中的cookie或参数中。 / p>