Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Quote Originariamente inviata da mbistato Visualizza il messaggio
    Ciao a tutti,

    ho un piccolo problema a capire il funzionamento della variabile in oggetto. In particolare ho una pagina HTML in cui faccio una richiesta tramite AJAX ad una pagina PHP:

    codice:
    var par = "XML=get&R=" + encodeURI(encodeURI(Math.random()));
    ajax.open("POST", "./index.php", true);
    ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    ajax.send(par);
    Nella pagina PHP invece effettuo il seguente controllo per esser certo che effettivamente c'è stata una richiesta

    codice:
    if(!empty($_REQUEST[XML]) && $_REQUEST[XML]=="get"){
    .....
    }

    Non riesco a capire perchè il programma non riconosce la variabile "XML" e non riesce quindi a svolgere le istruzioni dentro l'if.

    Qualcuno potrebbe darmi una mano?
    Prima di tutto io scriverei:
    codice:
    if(trim($_POST["XML"])=="get"){
    .....
    }
    Della parte javascript non posso essere sicuro, non ci hai detto con che framework stai lavorando, jQuery, altro?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    144
    Quote Originariamente inviata da Shores Visualizza il messaggio
    Prima di tutto io scriverei:
    codice:
    if(trim($_POST["XML"])=="get"){
    .....
    }
    anche mettendo questa ottengo il seguente errore: Notice: Undefined index: XML in C:\.....

    Della parte javascript non posso essere sicuro, non ci hai detto con che framework stai lavorando, jQuery, altro?
    uso la seguente funzione js che richiamo quando creo l'oggetto ajax ( var ajax = startXMLHttpRequest())

    codice:
    
    //AJAX-----------------------------
    function startXMLHttpRequest() {
     XHR = null,
     browserUtente = navigator.userAgent.toUpperCase();
    
    
     if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
    
    
      XHR = new XMLHttpRequest();
      
     else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
      if(browserUtente.indexOf("MSIE 5") < 0)
    
    
       XHR = new ActiveXObject("Msxml2.XMLHTTP");
      else
       XHR = new ActiveXObject("Microsoft.XMLHTTP");
     }
     return XHR;
    }

  3. #3
    Ok, così verifichi anche se c'è il parametro:

    codice:
    if(array_key_exists("XML",$_POST) && trim($_POST["XML"])=="get"){
    .....
    }
    Direi che la parte in js va bene... Sei sicuro che la chiamata ajax sta avvenendo correttamente, l'hai controllata con firebug o simili?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    144
    Quote Originariamente inviata da Shores Visualizza il messaggio
    Ok, così verifichi anche se c'è il parametro:

    Direi che la parte in js va bene... Sei sicuro che la chiamata ajax sta avvenendo correttamente, l'hai controllata con firebug o simili?
    Non mi da altri errori soltanto che sembra ancora non sia in grado di ricevere la richiesta visto che non mi genera il file XML
    Ti posto direttamente il codice cosi puoi verificarlo pure tu:


    pagina HTML:

    codice:
    <html>
    <head>
    <title>GlobaliX GPRS</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <SCRIPT src="script/function.js"></SCRIPT>
    <SCRIPT language="JavaScript" type="text/JavaScript">
      var Timer;
      //NOTE: https://developers.google.com/maps/documentation/imageapis/
      //Visualizza mappa da google
      function ShowMAP(latitude, longitude){
        var Width       = 640;
        var Height      = 640;
        var GOOGLE_KEY  = "AIzaSyDkK5hXflglDTRdRjed3cBtDc9t1EZ4ayM";
        if((document.body.clientWidth < 640) && (document.body.clientHeight < 640)){
          Width  =  document.body.clientWidth;
          Height = document.body.clientHeight;
        }
        var IMMAGE = "<img src=http://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude + "&zoom=17&size=" + Width + "x" + Height + "&maptype=mobile\&markers=" + latitude + "," + longitude + ",greeng&key=" + GOOGLE_KEY + "&sensor=false>";
        document.getElementById('mainspan').innerHTML =IMMAGE;
        return 0;
      }
      
      //Chiamata XML
      function GetData() { 
        var ajax = startXMLHttpRequest();
        if(ajax) {
          ajax.onreadystatechange=function() {
            if(ajax.readyState==4 && ajax.responseText!=null) {
              //PARSER XML
              try {
                var nodes=ajax.responseXML.getElementsByTagName("ROOT");
    			
                var latitude = nodes[0].getElementsByTagName("LATITUDE")[0].firstChild.nodeValue;
                var longitude = nodes[0].getElementsByTagName("LONGITUDE")[0].firstChild.nodeValue;		
    
    
                ShowMAP(latitude, longitude);
                
                HTML="<table>" +
                "<tr><td>Latitudine:</td><td><b>" + latitude + "</b></td></tr>" +
                "<tr><td>Longitudine:</td><td><b>" + longitude + "</b></td></tr>" +
                "</table>";
                document.getElementById('infospan').innerHTML =HTML;
    
    
              } catch (e) {
                HTML="<br><br><br><p class=error align=center>Struttura XML non valida o nessun dato presente nel database</p>";
                document.getElementById('infospan').innerHTML = HTML;
                document.getElementById('mainspan').innerHTML = "";
              }
            }
          }
    	  try {
            var par = "XML=get&R=" + encodeURI(encodeURI(Math.random()));
            ajax.open("POST", "./index.php", true);
            ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            ajax.send(par);
          } catch (e) {
            document.getElementById('mainspan').innerHTML ="<br><br><br><p class=error align=center><img src=warning.gif><br><br>Errore<br>Pagina " + page + " non trovata sul server</p>";
          }
          Timer = setTimeout('GetData()',20000);
        }
      }
    </SCRIPT>
    </head>
      
    <BODY onLoad='GetData();'>
    <center>
    <b>GlobaliX by Area SX S.r.l.<b><br>
    <div id=mainspan>
    </div>
    <div id=infospan></div>
    </center>
    </BODY>
    </html>


    pagina PHP:

    codice:
    <?php
    include "config.inc.php";
    
    
    $db1 = new SQLite3('globalix.db');
      //Salva le informazioni nel database
      if(true){
      $latitudine= "4153.2095";
      $longitudine = "0228.0818";
      $res = $db1->exec("INSERT INTO globalix (id, latitudine, longitudine) VALUES (null,'$latitudine','$longitudine')");
      }
      if($res)
       echo "1,20,0";
      else
       echo "0,0,0";
      //return(0);
     // }
    //Genera XML
    //if(!empty($_REQUEST['XML']) && $_REQUEST['XML']=="get"){
      if(array_key_exists("XML",$_POST) && trim($_POST["XML"])=="get"){
      header("Content-type: text/xml"); 
      header("Content-disposition: filename=index.xml");
      header("Pragma: no-cache"); 
      header("Expires: 0");
      //The backslash before " mean that I wanna write " in the string
      print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
    
    
      //Ricavo l'ultima coordinata inserita:
      $query = "SELECT * FROM globalix ORDER BY id DESC LIMIT 1";
      $res = $db1->query($query);
      $rows = array(); 
      while($row = $res->fetchArray()) { 
       $rows[] = $row; 
      }    
      
      echo "<ROOT>";
      if(sizeof($rows) > 0){
     
        //Ricavo la latitudine
        $latitude =(int)substr($latitudine,0,2) + (float)(substr($latitudine,2,7)) / 60; //Latitudine 
        $latitude = substr($latitude,0,9);
    
    
        //Ricavo la longitudine
        $longitude =(int)substr($longitudine,1,2) + (float)(substr($longitudine,3,7)) / 60; //Longitudine
        $longitude = substr($longitude,0,9);
    
    
    
    
        echo "<LATITUDE>" . $latitude . "</LATITUDE>";
        echo "<LONGITUDE>" . $longitude . "</LONGITUDE>";
        echo "</ROOT>";
      } else {
        echo "<ERROR>0</ERROR>";
        echo "</ROOT>";
      }
      echo "finish";
      return 0;
    }
    
    
    ?>

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.