Problemi Interazione tra PHP\JS\MYSQL

Albertoesse

Nuovo Utente
21 Set 2012
14
0
0
Salve a tutti ho il seguente problema che non riesco a risolvere in nessun modo...
praticamente dopo aver preso dei dati da un database vorrei che alcuni campi siano mostrati solo premendo un pulsante che fa aprire una finestra ( sto utilizzando js).
Funziona tutto perfettamente tranne per il fatto che quando viene chiamata la chiave $cont['telefono'] nel js l'indice dell'array $cont [''] va avanti di 1 e quindi mi stampa il campo successivo a quello di $cont['descrizione']
vi posto il codice:
PHP:
codice PHP:
<?php 

class dati{ 
     
public $host="localhost"; 
public $user="root"; 
public $pwd=""; 
public $database="domestici"; 
public $utente=""; 
public $pass=""; 
public $muratura="select * from muratura"; 

public function connessione() { 
            mysql_connect($this->host,$this->user,$this->pwd) or die('nessuna              connessione'); 
            mysql_select_db($this->database)or die ('nessun db'); 
     
} 

public function stampa(){ 
             ?> 
                 
                         

                 
                        <?php  
                        $contenuto=mysql_query($this->muratura); 
                 
                            while($cont=mysql_fetch_array($contenuto)) 
                                        {echo $cont['descrizione'].'<br />'; 
                                        ?>         
                                    <SCRIPT language="JavaScript"> 
                        <!-- Begin 
                            function display_image() { 
                                mywindow=window.open("","help","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=285,height=255,screenX=500,screenY=100");  

                                 
                                mywindow.document.write("<?php echo $cont['telefono'] 
                                ?>"); 
                                                     } 
                        // End --> 
            <a href="java-script:display_image()">telefono</a><br /> <?php 
                        } 
                        } 

                         
public function login(){ 
     

                    $interrogazione=mysql_query($this->muratura); 
                             
                                switch($risultato=mysql_fetch_array($interrogazione)){ 
                                                    case empty($this->utente)||empty($this->pass) : echo "I campi <strong>Codice Fiscale</strong> e <strong>Password</strong> devono essere compilati"; 
                                                    break; 
                                                    case $this->utente==$risultato['codfiscale']&&$this->pass==$risultato['pwd']: echo "login corretto"; 
                                                    break; 
                                                    case  $this->utente!=$risultato['codfiscale']&&$this->pass!=$risultato['pwd']: echo "codice errato"; 
                                                    break; 
                                                                                     }     
                     
     
                 
     
     
    }     
     

     
    } 
     
     
?>



cerco di spiegarmi meglio:
l'array $con[''] contiene tutti i valori di una tabella mysql dove descrizione e telefono sono due dei campi, quello che vorrei è avere una parte dei risultati sulla pagina principale del sito ed il restante richiamarlo tramite una finestra che si apre solo se l'utente clicca su un pulsante.Ho utilizzato php per programmare tutti il sito e javascript solo per la parte della finestra da aprire su richiesta.
il mio problema è che
codice PHP:

.... echo $cont['descrizione']....
mi da il risultato della prima riga della tabella
invece quando richiamo codice PHP:

...echo $cont['telefono']
con il javascript invece di darmi il campo relativo alla riga dicodice PHP:

$cont['descrizione']
mi da il risultato della riga successiva nonostante si trovino entrambi nello stesso ciclo while...

P.S. spero di essere stato chiaro e che qualche anima pia mi aiuti perchè sto uscendo fuori di matto
 
Ultima modifica di un moderatore:
prova a modificare questa parte cosi
PHP:
<script type="text/JavaScript"> 
                                                                            
                function display_image(telefono) { 
                    mywindow=window.open("","help","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=285,height=255,screenX=500,screenY=100");  

                                                                                                                                             
                    mywindow.document.write(telefono); 
                } 
                                                                            
            </script>
            <a href="javascript:display_image('<?php echo $cont['telefono'] ?>')">telefono</a><br />

language nel tag script è deprecato meglio type
nel tuo codice non chiudevi il tag </script>
c'èra una chiusura e una riapertura di php inutile
PHP:
<?php
class dati {

    public $host = "localhost";
    public $user = "root";
    public $pwd = "";
    public $database = "domestici";
    public $utente = "";
    public $pass = "";
    public $muratura = "select * from muratura";

    public function connessione() {
        mysql_connect($this->host, $this->user, $this->pwd) or die('nessuna connessione');
        mysql_select_db($this->database) or die('nessun db');
    }

    public function stampa() {

        $contenuto = mysql_query($this->muratura);

        while ($cont = mysql_fetch_array($contenuto)) {
            echo $cont['descrizione'] . '<br />';
            ?>         
            <script type="text/JavaScript"> 
                                                                            
                function display_image(telefono) { 
                    mywindow=window.open("","help","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,copyhistory=0,width=285,height=255,screenX=500,screenY=100");  

                                                                                                                                             
                    mywindow.document.write(telefono); 
                } 
                                                                            
            </script>
            <a href="javascript:display_image('<?php echo $cont['telefono'] ?>')">telefono</a><br /> 
            <?php
        }
    }

    public function login() {

        $interrogazione = mysql_query($this->muratura);

        switch ($risultato = mysql_fetch_array($interrogazione)) {
            case empty($this->utente) || empty($this->pass) : echo "I campi <strong>Codice Fiscale</strong> e <strong>Password</strong> devono essere compilati";
                break;
            case $this->utente == $risultato['codfiscale'] && $this->pass == $risultato['pwd']: echo "login corretto";
                break;
            case $this->utente != $risultato['codfiscale'] && $this->pass != $risultato['pwd']: echo "codice errato";
                break;
        }
    }

}
?>
 
Ora funziona perfettamente!!!!:mavieni:
Grazie mille criric ero diventato davvero pazzo a cercare la soluzione ma con js sono ancora all'abc!!
Praticamente hai passato in js la variabile 'telefono' dell'array php $cont?

grazie ancora!
 

Discussioni simili