Pregunta

¿Alguien puede aconsejarme sobre cómo mi Ajax Div puede obtener una variable de barra de direcciones? La forma habitual simplemente no funciona.

Mi barra de direcciones actualmente se ve así:

http://localhost/social3/browse/?locationName=Cambridge

Obviamente, la palabra que estoy tratando de acceder aquí es 'Cambridge'. Por lo general, usaría un poco de PHP y haría esto:

$searchResult = $_POST['locationName'];
echo $searchResult;

Pero debido a que estoy en un Ajax Div, parece que no puedo llegar a la variable.

¿Necesito agregar un poco de magia JavaScript a mi codificación AJAX? (Tengo poco conocimiento de esto)

Mi Ajax:

<script>    
window.onload = function () {
    var everyone = document.getElementById('everyone'),
        searching = document.getElementById('searching'),
        searchingSubmit = document.getElementById('searchingSubmit');

    everyone.onclick = function() {
        loadXMLDoc('indexEveryone');
        everyone.className = 'filterOptionActive';
        searching.className = 'filterOption';
    }

    searching.onclick = function() {
        loadXMLDoc('indexSearching');        
        searching.className = 'filterOptionActive';
        everyone.className = 'filterOption';
    }

     searchingSubmit.onclick = function() {
        loadXMLDoc('indexSearchingSubmit');  
    }

    function loadXMLDoc(pageName)
    {
        var xmlhttp;
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("leftCont").innerHTML=xmlhttp.responseText;
            }
          }

        function get_query(){
          var url = location.href;
          var qs = url.substring(url.indexOf('?') + 1).split('&');
          for(var i = 0, result = {}; i < qs.length; i++){
            qs[i] = qs[i].split('=');
            result[qs[i][0]] = decodeURIComponent(qs[i][1]);
          }
          return result;
        }

        xmlhttp.open("GET","../browse/" + pageName + ".php?user=" + get_query()['user'],true);
        xmlhttp.send();
        }
}
</script>
<!-- ends ajax script -->
¿Fue útil?

Solución

Si su URL contiene la variable, debe usar $_GET["key"] en vez de $_POST

Alternativamente, puede usar $_REQUEST["key"] para manejar ambos casos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top