Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema confronto di stringhe in javascript

    Salve, il mio problema è il seguente, ho un array che popolo con i valori del ResultSet di una query mysql e vorrei controllare cosa, c'è scritto in ogni posizione dell'array; se metto un alert ottengo perfettamente il valore memorizzato nella posizione dell'array, mentre se confronto questo valore con una stringa, risulta essere sempre diverso. I valori possibili per ogni cella dell'array sono SI o NO. Credo che il problema sia nel confronto di stringhe ma non riesco a venirne a capo.
    Codice PHP:
    <?php do{ ?>
         arraypers = arraypers.concat("<?php echo $row_Recordset1['personalizzabile'];?>");
         <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1));
                  
    $rows mysql_num_rows($Recordset1);
                  if(
    $rows 0) {
                   
    mysql_data_seek($Recordset10);
                 
    $row_Recordset1 mysql_fetch_assoc($Recordset1);
           }
    ?> 
         var personal = arraypers[selmen.selectedIndex];
        
            // qui la stampa del valore contenuto in personal è giusta ossia stampa si dove c'è SI, stampa NO dove c'è no quindi l'array è correttamente popolato;
            alert("vero valore: " + personal); 
         
    if(personal=="NO"){ //Qui si trova il problema, in $pers mi scrive sempre e solo si quindi viene eseguito l'else anche se in personale c'è NO.
          <?php $pers='no'?>
          } else {
                <?php $pers='si'?>
          }
               alert("valore restituito: <?php echo $pers?>");
    avete un'idea?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma ho qualche dubbio un ciclo do php (operazione lato server) inserito in script javascript (lato client) c'è qualcosa che non mi quadra, ma forse mi sbaglio io.
    Di sicuro minimo devi valorizzare una variabile

    var miavariabile = "<?php $pers='no'; ?>"
    } else {
    miavariabile = "<?php $pers='si'; ?>";
    }
    alert("valore restituito: "+miavariabile);

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Come ha gi&agrave; accennato Andrea, il problema &egrave; nella logica del tutto.
    Prover&ograve; a spiegare.

    Ci sono due computers, uno &egrave; il Client, dove c'&egrave; il browser, ed uno &egrave; il Server, dove c'&egrave; il server http, con a bordo l'interprete PHP, e che risponde alle richieste del Client.

    La cosa funziona cos&igrave;:
    - Il Client CHIEDE al Server una pagina (la TUA pagina!)
    - il Server, PRIMA genera la pagina nella sua memoria, POI la invia al Client. Per generare la pagina, che &egrave; rigorosamente HTML con eventualmente javascript, utilizza, in questo caso, l'interprete PHP.
    - Una volta che il Server ha generato la pagina, la invia al browser del Client poi si mette in ascolto per servire qualcun altro.
    - Il Client RICEVE la pagina e, se essa contiene Javascript, lo esegue. Ovviamente il Client NON HA L A PI&Ugrave; PALLIDA IDEA che il Server usi PHP per fare le pagine! Lui gli ha chiesto una pagina HTML, e non gliene importa come il server l'abbia generata!

    Insomma, tutta 'sta favoletta per cercare di spiegare che il Server ed il CLient manco si 'conoscono' da cui, ovviamente, sperare che un if in javascript faccia eseguire o meno un'istruzione php, beh, ovviamente &egrave; una speranza vana!.

    In un'ultima frase:
    Il php sul server 'disegna la pagina' e, quando ha finito, la imbusta e la invia al client.
    E basta!

    Chiss&agrave; se mi sono spiegato!

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  4. #4
    Utente di HTML.it L'avatar di lloyd27
    Registrato dal
    Mar 2006
    Messaggi
    256
    Come ha detto homezappa è completamente sbagliato ligicamente.. Ripassati la differenza tra lato server e lato client..

  5. #5

    Non sono troppo convinto che il problema sia per quel fatto.

    Salve, ho appena letto le vostre risposte, sinceramente ho qualche dubbio che il problema sia sulla interazione client/server, infatti vi posto praticamente le righe di codice javascript che precedono il codice che ho postato ieri e il meccanismo è lo stesso e funge correttamente: in pratica al cambio del valore in una select (popolata dinamicamente precedentemente), esso mi va a costruire un array con le descrizioni associate a ogni volore della select e poi le richiamo in un div scegliendo come indice dell'array, l'index del valore scelto nella select.

    Codice PHP:
     <?php if($_GET['ART']=='cappucciuniversali'){ ?>
         selmen = document.getElementById('menuart');
         selectionart = selmen.options[selmen.selectedIndex].value + ".png";
         selectionart = "/public/img/ante" + selectionart.substring(3);
         var pictart = document.getElementById("artpict");
           pictart.src = selectionart;
           pictart.name = selmen.options[selmen.selectedIndex].value;
           var elemart = document.getElementById("linkart");
           elemart.href = selectionart;
           elemart.title = selmen.options[selmen.selectedIndex].value;
          arraydesc = new Array();
         <?php do{ ?>
         arraydesc = arraydesc.concat("<?php echo $row_Recordset1['descrizione'];?>");
         <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1));
                  
    $rows mysql_num_rows($Recordset1);
                  if(
    $rows 0) {
                   
    mysql_data_seek($Recordset10);
                 
    $row_Recordset1 mysql_fetch_assoc($Recordset1);
           }
    ?> 
         document.getElementById('descrizione').innerHTML = arraydesc[selmen.selectedIndex];
    come potete notare c'è lo stesso ciclo do/while che mi scandisce tutto il recordset ottenuto dalla mia query e mi aggiunge i valori nelle celle di un array.

    Come dicevo qui funge tutto; il fatto è che anche sopra nel pezzo di codice postato prima funge tutto, o meglio se chiamo alert("valore nella posizione x dell'arraypers"); il valore è corretto, quindi non ci sono problemi a livello di ciclo do/while, è solo l'if che confronta la stringa contenuta in personal con NO che scazza e non so perchè.

  6. #6

    TUTTO RISOLTO

    Grazie dell'interesse al mio problema, volevo comunicarvi che l'ho risolto.
    In pratica non ho sfruttato più quella variabile $pers che come bene avete fatto notare veniva scritta a si prima che partisse il javascript. Ho utilizzato semplicemente l'attributo style.display di un div ottenendo lo stesso risultato.
    Per quanto riguarda il ciclo PHP nel javascript, lì non c'è alcun problema invece, funge normalmente.

    Codice PHP:
             arraydesc = new Array();
           arraypers = new Array();
         <?php do{ ?>
         arraydesc = arraydesc.concat("<?php echo $row_Recordset1['descrizione'];?>");
          arraypers = arraypers.concat("<?php echo $row_Recordset1['personalizzabile']; ?>");
         <?php } while ($row_Recordset1 mysql_fetch_assoc($Recordset1));
                  
    $rows mysql_num_rows($Recordset1);
                  if(
    $rows 0) {
                   
    mysql_data_seek($Recordset10);
                 
    $row_Recordset1 mysql_fetch_assoc($Recordset1);
           }
    ?>        
         if(arraypers[selmen.selectedIndex]=='SI'){
               document.getElementById('nota').style.display='inline';
               document.getElementById('ArticoloPers').style.display='block';
                document.getElementById('ArticoloPersIva').style.display='block';
         } else {
                document.getElementById('nota').style.display='none';
             document.getElementById('ArticoloPers').style.display='none';
                document.getElementById('ArticoloPersIva').style.display='none';
         }
    questa è la soluzione se può essere utile a qualcuno.

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.