2010-11-16 7 views
0

Ok, j'ai un div #pagecontainer qui charge une autre page php page_ $ var.php dedans et $ var est le numéro de page, je dois obtenir le url variables de chaîne de requête, mais je ne peux pas sembler les récupérer de la nouvelle page.

exemple: loc = 3 & option = 5

je juste ne peux pas saisir que l'intérieur de la nouvelle page

+0

'$ _GET' est une constante php codifiés et il est dans le back-end. Aucun javascript (jquery) ne peut y accéder. – Zlatev

+0

@Zlatev: À moins que vous ne le diffusiez quelque part javascript peut y accéder. – Svish

Répondre

1

1) Assurez-vous que votre page se charge en fait - sortie une valeur statique quelle que soit la loc et l'option

2) imprimer $ _SERVER [ 'QUERY_STRING'] pour vous assurer que vos paramètres get sont passés se

3) imprimer une décharge de _GET via var_dump ($ _ GET)

Bonne chance!

0

Oui, vous pouvez. Sipage_1.php?loc=3&option=5 est votre chaîne de requête, alors $_GET['loc'] et $_GET['option'] sont définis.

0

bâtiment im il basé sur de ce tutoriel http://tutorialzine.com/2009/09/simple-ajax-website-jquery/

sauf que je l'ai load_page.php y compris les fichiers page_x.php , mais à l'intérieur du fichier page_1 je l'ai compris mon dossier connect.php puis l'exécution d'une requête SQL « SELECT * FROM pages où Pages.option = 'mysql_real_escape_string ($ _ GET [ "option"]);

et je ne peux jamais obtenir la chaîne de requête URL dans le fichier php

im chargement comme page_1 du tutoriel et j'essaie d'obtenir le GET de m la page des thats chargeant celui-ci

ici un lien http://imstillreallybored.com/newstuff/pagetest.php?loc=3&option=5

charges d'information page_1.php qui est où im essayant de saisir la chaîne de requête url im connexion à la base de données et de saisir des informations uniquement parce que la mise en im la loc $ et $ option pour tester les numéros jusqu'à ce que je peux obtenir la chaîne

<?php 
include './connect.php'; 

$sql = "SELECT 
     *     
     FROM      
      pages      
     WHERE       
      pages.option =".mysql_real_escape_string($_GET["option"]);    
     $result = mysql_query($sql);    
     if(!$result)    
     {     
      echo 'The topic could not be displayed, please try again later.';    
      }else{    
       if(mysql_num_rows($result) == 0)     
       {      
        echo 'This doesn&prime;t exist.';    
       }else{      
       while($row = mysql_fetch_assoc($result))      
        {      
         if($_GET["loc"]=="3")      
        {       
        //display content for sports section based on option       
        echo $option.'       
        <div id="pageContent">        
        <div class="clear"></div>        
        <h2>'.$row[header].'</h2>        
        <p class="meta">          
        <b>Coach(s)</b>:<a href="staff.php">'.$row[coach].'</a>        
        </p>                  <div class="post-img">          
        <a href="#"><img src="'.$row[image].'" width="640" height="196" alt="image missing" /></a>         
        </div>         
        <div class="excerpt">          
        <p>'.$row[body].'</p>         
        </div>';      
        }     
       }     
     }    
} 
?> 
+0

j'ai compris le problème et l'ai fonctionné je devais changer le $ .ajax à GET et envoyer différentes variables que j'ai placées sur la page originale dans 2 champs cachés j'ai alors passé les variables dans les données à la page suivante qui a sauvé $ loc et $ option comme une variable GET puis j'ai utilisé get_file_contents sur le fichier php pour charger ceux qui se sont connectés à ma base de données mais comme il saisit le fichier et le charge dans l'autre fichier les variables GET sont toujours là et maintenant il travaux. c'est vraiment difficile à expliquer haha ​​ , utilisé var_dump ($ _ GET) alot pour vérifier ce qui était dans la chaîne de requête url –

1

Dans la <head> de votre page principale, ou nulle part ailleurs aussi longtemps que votre script ajax est en mesure d'obtenir, ajoutez ceci:

<script type="text/javascript"> 
    $_GET = <?php echo json_encode($_GET) ?>; 
</script> 

Vous devriez alors pouvoir utiliser la variable $ _GET de Javascript. Vous pouvez par exemple tester dans Firebug dans FireFox:

console.info($_GET); 
console.info($_GET['loc']); 
console.info($_GET.loc); 

Souvenez-vous de désinfecter les valeurs avant de les utiliser pour quelque chose d'important ...

+0

A première vue, cela semblait si mauvais que je voulais pleurer, mais vous avez raison. Sauf que $ _GET (la variable javascript) sera juste une chaîne JSON, pas un objet JavaScript. Pour le convertir en objet JS, OP doit faire quelque chose comme '$ _GET = eval ('(' + '' + ')');' – Yahel

+0

@yc: Non, ce sera un objet JS, ou un tableau, ou n'importe quelle sortie de json_encode. Rappelez-vous que cela se produit côté serveur. Pas besoin d'eval ou de concatination de ficelle. Cela devrait fonctionner dès la sortie de la boîte. Essaye le. Fonctionne bien ici au moins :) – Svish

+0

@yc: Comme vous pouvez le voir sur http://codepad.org/vE8VT7E9, vous obtenez une sortie javascript valide qui sera interprétée correctement par le navigateur :) – Svish

0

est ici un moyen d'obtenir des paramètres d'URL avec javascript.

<script language="javascript"> 
function gup(name) 
{ 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
    return ""; 
    else 
    return results[1]; 
} 

De: http://www.netlobo.com/url_query_string_javascript.html

Questions connexes