Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    179

    Domanda su php ajax , post e get

    Ciao raga urgentissimo vi prego!!
    Script ajax che si trova in un file js che includo in tutte le pagine:
    codice:
    var httpObject = null;
    
    function toGetXmlHttpObject()
    {
    	if (window.XMLHttpRequest)
    	{
    		// Firefox, Google Chrome, Safari, Opera, Internet Explorer 7+
    		return new XMLHttpRequest();
    	}
    	else if (window.ActiveXObject)
    	{
    		// Internet Explorer 5, Internet Explorer 6
    		return new ActiveXObject('Microsoft.XMLHTTP');
    	}
    	else
    	{
    		alert('Ajax is not supported!.');
    		
    		return null;
    	}
    }
    Codice di news.js che includo solo in news.php
    codice:
    // Complete
    	function toNewsShowComplete(number) // Send POST in page
    	{
    		httpObject = toGetXmlHttpObject();
    
    		if (httpObject != null)
    		{
    			var parameter = 'newsNumber=' + escape(number);
    			
    			//path.getElementById('sectionPageResult').innerHTML = '';
    			
    			//toLoadingImage('sectionPageResult');
    			
    			httpObject.open('GET', siteUrl + '/Module/News.module.php' + '?newsNumber=' + escape(number), true);
    			//httpObject.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    			httpObject.send(null);
    			httpObject.onreadystatechange = function(){toNewsModuleSetOutput(debug)};
    		}
    	}
    	// Complete
    	
    	// Output
    	function toNewsModuleSetOutput(debug)
    	{
    		if (httpObject.readyState == 4 && httpObject.status == 200)
    		{
    			if (debug == true)
    			{
    				alert(httpObject.responseText);
    			}
    			
    			var response = httpObject.responseText.split('|');
    			
    			alert(response);
    			
    			if (response[1] == undefined)
    			{
    				//path.body.innerHTML = response[0];
    				path.getElementById('aaa').style.display = 'block';
    			}
    			else if (response[0] == 'ReloadOn')
    			{
    				
    			}
    			else if (response[0] == 'ReloadOff')
    			{
    				
    			}
    		}
    	}
    	// Output
    e news.php
    codice:
    <div style="display: none;" id="aaa" name="aaa">
    				<?php
    				echo $newsNumber = Security::toCleanVariable($_GET['newsNumber']);
    				
    				//if (!empty($newsNumber))
    				//{
    					$newsQuery = mysql_query("SELECt * FROM site_addon_news
    													WHERE number = '$newsNumber'") or die (mysql_error());
    					while ($data = mysql_fetch_array($newsQuery))
    					{
    					?>
    						<div class="complete">
    							<h1 class="completeH1">
    								News numero: <?php echo $data['number']; ?>
    							</h1>
    							<p class="completeTitle">
    								<?php echo $data['date'] . ' - ' . $data['title']; ?>
    							</p>
    							<p class="completeText">
    								<?php echo $data['argument']; ?>
    							</p>
    							<p class="completeLink">
    								Chiudi
    							</p>
    						</div>
    					<?php
    					}
    					mysql_free_result($newsQuery);
    				//}
    				?>
    				</div>
    Mo per la miseria!! xke nn mi funziona? E che devo capire bene come funziona ajax e mi serve qualcuno che me lo spieghi.
    Partiamo dall' inizio
    Ajax mi permette di fare richieste al server senza bisogno di ricaricare la pagina ed e' buono fino a qui. Pero' se voglio inviare una variabile POST o GET che sia xke mi invia la variabile (xke l' alert lo visualizzo ed e' giusto) e nn mi visualizza le informazioni dentro il div?
    Davvero aiutatemi a capire xke da solo nun c'e' riesco!!! =(
    Voglio solo fare in modo che appare il div con dentro la new tutto qua =(

  2. #2
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Io purtroppo non me ne intendo molto di Ajax però quando l'ho usato all'inizio non mi andava perchè c'erano problemi di tempi nella risposta, di chiamate sincrone e asincrone. Se vuoi ti posto il codice che uso io per inviare dati in POST con ajax così puoi confrontarlo, poi qualcun'altro più competente ti potrà dire dove sbagli e spiegarti meglio come funziona.

    Ecco il codice del file js che includo io:
    codice:
    var ajax = assegnaXMLHttpRequest();
    
    //
    // funzione per assegnare l'oggetto XMLHttpRequest compatibile con i browsers più recenti e diffusi
    //
    function assegnaXMLHttpRequest() {
    
    	// lista delle variabili locali
    	var
    		// variabile di ritorno, nulla di default
    		XHR = null,
     
    		// informazioni sul nome del browser
    		browserUtente = navigator.userAgent.toUpperCase();
    
    
    	// browser standard con supporto nativo
    	// non importa il tipo di browser
    	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
    		XHR = new XMLHttpRequest();
    
    	// browser Internet Explorer
    	// è necessario filtrare la versione 4
    	else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0	) {
    	
    		// la versione 6 di IE ha un nome differente
    		// per il tipo di oggetto ActiveX
    		if(browserUtente.indexOf("MSIE 5") < 0)
    			XHR = new ActiveXObject("Msxml2.XMLHTTP");
    
    		// le versioni 5 e 5.5 invece sfruttano lo stesso nome
    		else
    		XHR = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    
    	return XHR;
    }
    
    //
    // funzione per inviare dati col metodo post ad un'altra pagina
    //
    function inviaPOST(pagina, dati, callback) {
    	if (ajax) {
    		// inizializzo la richiesta in post
    		ajax.open("post", pagina, true);
    		
    		// imposto il giusto header
    		ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    		ajax.setRequestHeader("connection", "close")
    		
    		// effettuo la richiesta inviando i dati formati da coppie chiave-valore
    		// dati = escape(dati);
    		ajax.send(dati);
    		
    		ajax.onreadystatechange = function() {
    			if(ajax.readyState === 4)			
    				if(ajax.status == 200) 
    					return callback(ajax.responseText);
    				else{
    					//alert("Operazione fallita, errore numero " + ajax.status);
    					return null;
    				}
    		}
    	}
    }
    per inviare i dati e ottenere la risposta assegni a un evento di un oggetto nella pagina con il form:
    codice:
    inviaPOST('pagina_che_esegue_il_controllo.php', 'variabile_a=valore_a', function(risposta){
    	// se l'invio ha funzionato
    	if (risposta) {
    		// qui scrivi il codice che controlla la risposta
    	}
    	else // se l'invio non ha funzionato	
    		return true;
    });

  3. #3
    Per prima cosa, smettete di farvi del male e usate jQuery.

    In secondo luogo per Javascript c'e' un forum apposta.

    Infine CIMO1 dai un'occhiata al regolamento per quanto riguarda le urgenze.

  4. #4
    Usa jquery (http://jquery.com) ed attivi l'evento di invio dati, magari al click di un pulsante:
    Codice PHP:
    $("#id_del_pulsante").click(function{
    $.
    ajax({ 
            
    type'POST'
            
    url'file.php'
            
    data"variabile1=1&variabile2=2"
            
    success: function(msg) {
                        $(
    "#id_del_div_da_popolare").html(msg);            
                    }  
          });
    }); 
    Nel file file.php estrai i record che ti servono e con un print (o echo) stampi cosa vuoi che compaia nel div.

  5. #5
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da k.b
    Per prima cosa, smettete di farvi del male e usate jQuery.
    Hai ragione, avevo sentito il nome ma non mi ero mai informato su jquery, è molto meglio, grazie.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    179
    mmmm lo sto' provando ma mi da ajax not defined.... dove hai definito if (ajax) ??

  7. #7
    Originariamente inviato da CIMO1
    mmmm lo sto' provando ma mi da ajax not defined.... dove hai definito if (ajax) ??
    Devi includere jquery ovviamente

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    179
    Ok ma io volevo appunto evitare jquery per imparare ajax....
    k.b
    Ho scritto qui xke riguarda anche php nn lo sapevo che dovevo scrivere nella sezione javascript.... la prox volta posto la parte php qui e la parte javascript li =P
    Cmq l'allert mi funziona e mi visualizza le variabili e il div...ma la pagina a video nn si sposta di un millimetro!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    179
    Originariamente inviato da Dirk Pitt
    Devi includere jquery ovviamente
    No mi riferivo a costi31..nn avevo visto la ajax dichiarata su lui nel suo esempio nn ha usato jquery

  10. #10
    Utente di HTML.it L'avatar di costi31
    Registrato dal
    Nov 2007
    Messaggi
    345
    Originariamente inviato da CIMO1
    No mi riferivo a costi31..nn avevo visto la ajax dichiarata
    Come no, è nel primo blocco di codice: var ajax = assegnaXMLHttpRequest();

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.