Si su URL contiene la variable, debe usar $_GET["key"]
en vez de $_POST
Alternativamente, puede usar $_REQUEST["key"]
para manejar ambos casos.
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 -->
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.