Visualizzazione risultati 1 fino 7 di 7

Discussione: PHP e modifica pagina in diretta

  1. #1
    L'avatar di TRAX3D
    TRAX3D non è connesso Utente giovane
    Data registrazione
    08-12-2004
    Residenza
    Ossola
    Messaggi
    81

    Predefinito PHP e modifica pagina in diretta

    Salve vorrei sapere se è possibile con PHP fare qualcosa del genere:

    tryjs_events

    Cioè cambiare del testo sulla pagina in diretta come il nell'esempio sopra o PHP necessita per forza che la pagina sia rigenerata?
    Grazie

  2. #2
    Guest

    Predefinito

    Quello che vedi non è PHP ma JavaScript.

    Con PHP agisci lato server e quindi (in generale) la pagina una volta creata quella è. Se vuoi modificarla devi usare un linguaggio che agisca sul client (JavaScript).

    Una tecnica che permette di unire i due (PHP e JS) è AJAX. Nel particolare usando JS invii ad un server una richiesta. Il server la elabora (e quindi esegue, se è il caso il codice PHP) e restituisce un risultato. Lo script che ha iniziato la comunicazione agisce di conseguenza e quando serve modifica la pagina.

  3. #3
    L'avatar di TRAX3D
    TRAX3D non è connesso Utente giovane
    Data registrazione
    08-12-2004
    Residenza
    Ossola
    Messaggi
    81

    Predefinito

    Quindi se volessi fare un pulsante che legge dei dati in inputbox e scrive a video il risultato di operazioni matematiche senza cambiare pagina o uso JS oppure per usare PHP devo usare AJAX.
    I calcoli che devo fare non sono complicati seconto te è meglio che imparo quel minimo di JS che mi serve oppure è facile integrare AJAX, visto che conosco poco entrambi?
    il problema è che PHP essendo lato server mi nascondeva tutte le formule usate invece il codice JS è visibile in nel source della pagina HTML gisuto?
    Ora provo a dare un'occhiata a AJAX

  4. #4
    Guest

    Predefinito

    Se vuoi nascondere i calcoli, si invia i dati ad una pagina php (tramite ajax) e poi scrivi il risultato restituito.

  5. #5
    L'avatar di TRAX3D
    TRAX3D non è connesso Utente giovane
    Data registrazione
    08-12-2004
    Residenza
    Ossola
    Messaggi
    81

    Predefinito

    se qualcuno ha un po di pazienza...
    ho cercato sul web
    sto provando questo script AJAX + PHP ma non funziona dove sbaglio?
    Codice HTML:
    <!DOCTYPE html>
    <html><head>
    <script type="text/javascript">
    function Calcola(strA, strB, strC)
    {
    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("ValoreTOT").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","gethint.php?A="+strA+"&B="+strB+"&C="+strC,true);
    xmlhttp.send();
    }
    </script>
    </head><body>
    
    Valore di A: <input type="text" id="ValoreA"/><BR>
    Valore di B: <input type="text" id="ValoreB"/><BR>
    Valore di C: <input type="text" id="ValoreB"/><BR>
    
    
    <button type="button" onclick="Calcola(ValoreA,ValoreB,ValoreC)">Calcola</button><BR>
    
    Valore di TOT: <input type="text" id="ValoreTOT"/><BR>
    <div id="ValoreTOT">Risultato...</div>
    
    </body></html>
    File PHP
    Codice PHP:
    <?php
    //get the q parameter from URL
    $A = $_GET["A"];
    $B = $_GET["B"];
    $C = $_GET["C"];

    $response = $A + $B + $C;

    //output the response
    echo $response;
    ?>
    Ultima modifica di TRAX3D : 28-06-2012 alle ore 13.23.13

  6. #6
    Guest

    Predefinito

    Le richieste asincrone sono un po' ostiche, ecco perchè ti consiglio di appoggiarti a qualcosa che ti semplifichi le cose tipo jQuery.

    Una volta caricata la libreria (jQuery) potresti usare qualcosa tipo (scritto di botto)

    Codice PHP:
    <!DOCTYPE html>
    <
    html>
    <
    head>
    <
    script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
    function calcola(strA, strB, strC) {
    $.get('gethint.php?A=' + strA + '&B=' + strB + '&C=' + strC, function(html) {
    $('#ValoreTOT').val(html);
    });
    }
    </script>

    </head>
    <body>

    Valore di A: <input type="text" id="ValoreA" /><br />
    Valore di B: <input type="text" id="ValoreB" /><br />
    Valore di C: <input type="text" id="ValoreB" /><br />

    <button type="button" onclick="Calcola(ValoreA,ValoreB,ValoreC)">Calcola</button><BR>

    Valore di TOT: <input type="text" id="ValoreTOT"/><br />

    <div id="ValoreTOT">Risultato...</div>

    </body>
    </html>

  7. #7
    L'avatar di TRAX3D
    TRAX3D non è connesso Utente giovane
    Data registrazione
    08-12-2004
    Residenza
    Ossola
    Messaggi
    81

    Predefinito

    Grazie ma purtroppo non funziona ,
    per fortuna ho trovato questo e funziona
    posto per i posteri
    Codice HTML:
    html>
    <body>
    <script language="javascript" type="text/javascript">
    <!-- 
    //Browser Support Code
    function calcola(){
    	var ajaxRequest;  // The variable that makes Ajax possible!
    	try{
    		// Opera 8.0+, Firefox, Safari
    		ajaxRequest = new XMLHttpRequest();
    	} catch (e){
    		// Internet Explorer Browsers
    		try{
    			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
    			try{
    				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
    			} catch (e){
    				// Something went wrong
    				alert("Your browser broke!");
    				return false;
    			}
    		}
    	}
    	// Create a function that will receive data sent from the server
    	ajaxRequest.onreadystatechange = function(){
    		if(ajaxRequest.readyState == 4){
    			var ajaxDisplay = document.getElementById('ajaxDiv');
    			ajaxDisplay.innerHTML = ajaxRequest.responseText;
    		}
    	}
    	var strA = document.getElementById('ValoreA').value;
    	var strB = document.getElementById('ValoreB').value;
    	var strC = document.getElementById('ValoreC').value;
    	var queryString = "?A=" + strA + "&B=" + strB + "&C=" + strC;
    	ajaxRequest.open("GET", "Calcolo.php" + queryString, true);
    	ajaxRequest.send(null); 
    }
    //-->
    </script>
    
    <form name='myForm'>
    Valore di A: <input type="text" id="ValoreA" /><br />
    Valore di B: <input type="text" id="ValoreB" /><br />
    Valore di C: <input type="text" id="ValoreC" /><br />
    <input type='button' onclick='calcola()' value='Calcola' />
    </form>
    Risultato: <div id='ajaxDiv'>...</div>
    </body>
    </html>
    con il file Calcolo.php
    Codice PHP:
    <?php
    //Prendo i valori da URL
    $tmpA = $_GET["A"];
    $tmpB = $_GET["B"];
    $tmpC = $_GET["C"];

    //Eseguo il calcolo
    $response = $tmpA + $tmpB + $tmpC;

    //Emetto il risultato
    echo $response;
    ?>

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •