Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    variabili javascript in php

    Ciao, ho un javascript molto complesso che aggiorna una percentuale contenuta all'interno di uno span. Io devo salvare la percentuale nel database tramite php. Vista la complessità del javascript avevo pensato a due soluzioni poco invasive.

    1) Lo script fa uno switch tra vari possibili case. Se un case si verifica compare un alert. Vorrei sfruttare la cosa per inserire in questi case delle funzioni php da richiamare per salvare la percentuale. Non ho però idea se si possa fare. Per intenderci brutalmente sarebbe questa l'idea (ovviamente è formalmente errato).

    codice:
    case 50:
    alert('Sei al 50%');
    <? INSERT INTO table (percentuale) VALUES (50%)  ?>
    break;
    
    case 70:
    alert('Sei al 70%');
    <? INSERT INTO table (percentuale) VALUES (70%)  ?>
    break;
    2) Trovo il modo di fare un submit e passarmi la percentuale contenuta entro lo span. Mi risulta però difficile pensare come sia possibile realizzarlo.

  2. #2
    Il php viene eseguito lato server PRIMA che quel javascript venga consegnato al browser. Quello che ti consiglio di fare è una semplice richiesta AJAX dal codice javascript a uno script php apposito.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Si, devo esattamente passare il valore da client a server. Ho passato tutto il pomeriggio a leggere articoli su ajax request (usando GET) senza giungere a un punto fermo. Spiego il motivo. So usare il php e con altri linguaggi bene o male me la cavo per fare delle piccole modifiche. Il reverse engineering è relativamente semplice perchè il codice si "legge" facilmente.

    Il punto è che il javascript dall'apertura del tag <script> alla sua chiusura per un profano come me è un'accozzaglia di funzioni per me inconcepibili. Spero in un aiuto sul codice. Questo è il javascript.

    codice:
    <script type="text/javascript">			
    document.observe('dom:loaded', function() {
    
    // second manual example : multicolor (and take all other default paramters)
    manualPB2 = new JS_BRAMUS.jsProgressBar(
    $('element6'),
    52,								
    {
    
    barImage	: Array(
    'images/bramus/percentImage_back4.png',
    'images/bramus/percentImage_back3.png',
    'images/bramus/percentImage_back2.png',
    'images/bramus/percentImage_back1.png'
    ),
    
    onTick : function(pbObj) {
    
    switch(pbObj.getPercentage()) {
    
    case 98:
    alert('Hey, we\'re at 98!');
    break;
    
    case 100:
    alert('Progressbar full at 100% ... maybe do a redirect or sth like that here?');
    break;
    
    }
    
    return true; 
    }
    }
    							);
    }, false);
    </script>
    Io ora non so in che modo ma questo script va a modificare il contenuto di questo span che contiene la percentuale che voglio salvare nel database tramite php.

    codice:
    <span id="element6">[ Loading Progress Bar ]</span>
    Io dal basso della mia esperienza con javascript suppongo che la variabile si valorizzi (scusa il gioco di parole) in "$('element6'),". Sbaglio? Se non mi sbaglio come la passo in php?

  4. #4
    Ok penso di esserci quasi arrivato.

    codice:
    onTick : function(pbObj) {
    switch(pbObj.getPercentage()) {
    case 50:
    alert('Hey, we\'re at 98!');						
    break;
    case 100:
    alert('Progressbar full at 100%');											
    break;
    }
    }
    Immagino che pbObj.getPercentage() sia la variabile che mi dà la percentuale perciò faccio:

    codice:
    var percentuale=pbObj.getPercentage();
    document.write("<span>" + percentuale + "</span>");
    Però prima ancora di pensare a passarmi il valore tramite AJAX c'è il problema che + percentuale + non visualizza niente. Perchè?

  5. #5
    Lasciando perdere quanto scritto precedentemente...
    Bene o male ho fatto dei passi avanti da me.

    Live demo:
    http://www.virusgaming.net/test/index.php

    Il codice:
    codice:
    <? 
    // Imposto la percentuale di partenza a 0%
    $something = "0";
    ?>		
    	
    
    <script type="text/javascript" src="js/prototype/prototype.js"></script>
    
    
    <script type="text/javascript" src="js/bramus/jsProgressBarHandler.js"></script>		
    			
    <span style="color:#006600;font-weight:bold;">Multi Color Bar</span> 
    
    <span id="element6">Loading...</span>
    <span class="extra">[img]images/icons/empty.gif[/img]</span>
    <span class="options">[img]images/icons/add.gif[/img]</span>
    <span class="options">[img]images/icons/minus.gif[/img]</span>
    <span class="options">[img]images/icons/set.gif[/img]</span>
    <span class="options">[img]images/icons/fill.gif[/img]</span>
    <span class="getOption">[img]images/icons/get.gif[/img]</span>
    <span id="Text6" style="font-weight:bold">&laquo; Select Options</span>
    
    <script type="text/javascript">						
    	document.observe('dom:loaded', function() {
    
    		manualPB2 = new JS_BRAMUS.jsProgressBar(
    					$('element6'),
    					<? echo $something; ?>, 
    						
    					{
    
    						barImage	: Array(
    							'images/bramus/percentImage_back4.png',
    							'images/bramus/percentImage_back3.png',
    							'images/bramus/percentImage_back2.png',
    							'images/bramus/percentImage_back1.png'
    						),
    
    						onTick : function(pbObj) {
    											
    							switch(pbObj.getPercentage()) {
    															
    							}
    
    							return true; 
    						}
    					}
    				);
    	}, false);
    </script>	
    
    // Faccio un post con ajax nella stessa pagina
    <script type="text/javascript">
    var url = 'index.php';
    var pars = 'percentage=' + pbObj.getPercentage(); 
    var target = 'targetDivId';
    var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars});
    </script>
    
    // Qui dovrei vedere la percentuale ogni volta che modifico le barre
    <? 
    echo "Variabile -> ".$_POST['percentage']." <-"; 
    ?>
    Il problema è che $_POST['percentage'] non mi dà niente. Il massimo che sono riuscito ad ottenere è stato un "undefined" ma non ricordo come. Devo forse richiamare l'ajax con un onlick? Se si come? Ci sto provando da 4 giorni a passare questa benedetta percentuale da java a php.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova a cambiare questa riga:
    var pars = 'percentage=' + pbObj.getPercentage();
    con questa:
    var pars = 'percentage=' + $('element6_percentText').innerHTML
    Non conosco mootools (se quello che usi) non posso essere più preciso, ed eventualmente invece d'inviare AJAX in POST prova con GET
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    74
    Usa prototype, tuttavia manca il codice di richiamo per ajax...

    Questo qua sotto funziona, ho aggiunto ajax sottoforma di funzione sendAjax(perc)

    Codice PHP:

            
            
    <script type="text/javascript" src="js/prototype/prototype.js"></script>

            
            <script type="text/javascript" src="js/bramus/jsProgressBarHandler.js"></script>        

            <span style="color:#006600;font-weight:bold;">Multi Color Bar</span> 

            <span id="element6">Loading...</span>
            <span class="extra">[url="#"][img]images/icons/empty.gif[/img][/url]</span>
            <span class="options">[url="#"][img]images/icons/add.gif[/img][/url]</span>
            <span class="options">[url="#"][img]images/icons/minus.gif[/img][/url]</span>
            <span class="options">[url="#"][img]images/icons/set.gif[/img][/url]</span>
            <span class="options">[url="#"][img]images/icons/fill.gif[/img][/url]</span>
            <span class="getOption">[url="#"][img]images/icons/get.gif[/img][/url]</span>
            <span id="Text6" style="font-weight:bold">&laquo; Select Options</span>

            <script type="text/javascript">                        
                document.observe('dom:loaded', function() {
                    
                    sendAjax = function(perc){
                        var url = 'index.php';
                        var pars = 'percentage=' + perc;
                        var target = 'targetDivId';
                        var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars});   
                    };

                    manualPB2 = new JS_BRAMUS.jsProgressBar(
                    $('element6'),
                    0,                                
                    {

                        barImage    : Array(
                        'images/bramus/percentImage_back4.png',
                        'images/bramus/percentImage_back3.png',
                        'images/bramus/percentImage_back2.png',
                        'images/bramus/percentImage_back1.png'
                    ),

                        onTick : function(pbObj) {
                            
                            sendAjax(pbObj.getPercentage());
                                                
                            switch(pbObj.getPercentage()) {

                                case 90:

                                    break;

                                case 100:

                                    break;                                                                                                                                                                            

                            }

                            return true; 
                        }
                    }
                );
                    
                }, false);
            </script> 
    ..
    "Voi che avete gl'intelletti sani,mirate la dottrimna che s'asconde dietro il velame delli versi strani".

  8. #8
    Grazie infinitamente per le risposte

    Originariamente inviato da cavicchiandrea
    Prova a cambiare questa riga:
    var pars = 'percentage=' + pbObj.getPercentage();
    con questa:
    var pars = 'percentage=' + $('element6_percentText').innerHTML
    Non conosco mootools (se quello che usi) non posso essere più preciso, ed eventualmente invece d'inviare AJAX in POST prova con GET
    Ho dimenticato di dirlo ma anche questo avevo provato. Oltre al tuo avevo provato anche document.getElementById('element6').innerHTML; ma il risultato è il medesimo.

    Dalla mia inesperienza con ajax, basandomi sulla documentazione che ho letto e gli esempi che ho visto, mi pare che col codice ci siamo. Magari dico un'idiozia ma non è che sbaglio nell'onclick? onclick="document.write.myAjax();". Si trova in questa sezione.

    codice:
    <span class="getOption">[img]images/icons/get.gif[/img]</span>
    Lo dico perchè ogni volta che premo su questa icona l'url diventa da index.php a index.php#. Se anche avessi sbagliato la funzione almeno dovrei visualizzare index.php?percentage= e invece niente.

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    document.write.myAiax() ? e da dove l'hai presa questa sintassi?

    Non riesco nemmeno ad immaginarmi a cosa possa servire, se esistesse tu a che scopo l'hai inventata?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  10. #10
    Ovviamente l'ho tirata fuori dal mio cervello E' da 4 giorni che mi interesso a javascript ed è già tanto che sono riuscito a fare un ajax call Come si richiama la funzione in oggetto? Ho provato con Miafunzione(); nell'onlclick ma non succede nulla.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.