Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162

    Interazione Javascript e PHP

    Salve sto facendo una prova di elimina record iterando insieme javascript e php, mi funziona, ma solo a metà!

    Questo è il codice della funzione:


    Codice PHP:
    function elimina(){
         if(confirm("Sei sicuro di voler eliminare?")){
             
         <?php  $conn=DB::conn();
        
    $query="DELETE FROM cat WHERE id_categoria=$_GET[del]"?>
        <?php $res=@mysql_query($query);?>
         
             
         }
         else{
             
             return false;
         }
         
     }
    e poi la richiamo così:

    echo"<td><a href=Operazioni.php?del=$row[id_categoria] onclick=\"elimina();\">

    il problema è che quando vado a fare annulla sul "confirm" me lo elimina lo stesso!

    POtete aiutarmi per piacere?

  2. #2
    You can't use JS and PHP in that way.

    When you want to call it with JS you have to use AJAX, which calls a php-script to delete your row. (There are also nice Frameworks for it Xajax - PHP Framework, generates you your JS, or jquery - very simple to call a php-scriptfile.)

    Then your JS-function elimina() gets an parameter, something like that:

    elimina(id) {

    /* Pseudo-Code
    AJAX-Script-Call("deleteRow.php?id="+id);
    */
    }

  3. #3
    La query che fai nell'apertura di quei tag php avviene prima ancora che il browser capisca che in quella pagina ci sia del javascript. Non bisogna confondere la differenza di linguaggio lato server e linguaggio lato client.
    Se ci pensi, perchè chi non ha accesso al server, non puo vedere il codice php originale ? Semplice, perchè il file php viene prima processato e poi mostrato al browser, che renderizza la pagina e te lo mostra.
    Questo è chiamato script lato server.
    Il javascript invece, a differenza di php, è un linguaggio lato client. Infatti, se apri il codice pagina, vedi perfettamente tutto lo script.
    Questo per dirti, che le funzioni che usi in php sono strettamente riservate al server. Non puoi assolutamente richiamare funzioni php via javascript, anche perchè sarebbe proprio molto poco sicuro, tutti potrebbero leggere le tue variabili !.
    Tutto quello che fa php è semplicemente "portare a schermo i contenuti".
    Pero, per ovviare a questo, puoi usare le Ajax, come diceva prima MinoTebook.
    Le ajax sono librerie che fanno in modo che javascript possa fare delle richieste http e ricavarne i contenuti senza dover aggiornare la pagina come avviene sempre nell'html.
    Ti faccio un esempio banale:
    hai il file che ti stampa l'html ( index.php )
    e poi ha un file query.php dove metti la query che dovrebbe presumibilmente fare javascript nell'if.
    Con le ajax richiami questo file e fai la query mandandogli variabili via GET.
    Spero di essere stato chiaro
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Ottimamente chiaro, quinid l'unica soluzione è usare Ajax!

    Il fatto era questo che avevo preso esempio dalla strutura del PHPMYADMIn e siccome il progetto che sto facendo è simile a quest'ultimo pensavo che fosse solo javascript in questo formato. Infatti se conosci phpmyadmin c'è il la parte elimini la tabella che ti chiede se sei sicuro di eliminarla.

    Tutto qua!

    Ok.

    Grazie per il tuo prezioso consiglio !

    Alla prossima

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Visto che il gentilissimo bonaprogram mi ha parlato di ajax ho voluto intraprendere queste strada cercando di creare nella mia applicazione qualcosa che faccia uso di ajax;

    Ho provato degli esemepi e naturalmente ho cercato di adattarli nel mio codice, però funziona anche questo a metà.


    Mi spiego meglio (prima a parole,poi Vi mostro il codice):

    creo una pagina con estenzione .html e lì creo una select con dei valori e sull'evento onchange applico il cosiddetto codice ajax, poi creo il codice selectuser.js e infine l'appilcazione con esenzione .php e in questo modo funziona.

    se io nel file .html lo cambio sia dal punto di vista codice che anche come estenzione(.php) non funziona più.

    Questo è il codice della pagina mycheck.php;

    Codice PHP:
    <?php include('dbclass.php');?>
    <!DOCTYPE html PUBLIC "~//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"
          xml:lang="en-US">
    <head>
    <script src="selectuser.js"></script>
    </head>
    <body>
    <form action="getuser.php" method="GET"> 
    Select a User:
    <select name="users" onchange="showUser(this.value)">

    <?php
    $conn
    =DB::conn();
    $query="SELECT * FROM cat";
    $res=@mysql_query($query);
    while (
    $row=@mysql_fetch_assoc($res)) {


    echo
    "<option value=\"$row[id_categoria]\">$row[Categoria]</option>";

     } 
    ?>
    </select>
    </form>



    <div id="txtHint">[b]La Categoria non esiste nell'elenco.[/b]</div>
    </p>
    </body>
    </html>
    Questa è la pagina selectuser.js:

    codice:
    var xmlHttp
    function showUser(str)
    { 
    	if(str==""){
    		document.getElementById("txtHint").innerHTML="La Categoria non esiste nell'elenco";
    		
    	}
    xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null)
     {
     alert ("Browser non supporta questa richiesta HTTP")
     return
     }
    var url="getuser.php"
    url=url+"?q="+str
    //url=url+"&sid="+Math.random()
    xmlHttp.onreadystatechange=stateChanged 
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
    }
    function stateChanged() 
    { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
     { 
     document.getElementById("txtHint").innerHTML=xmlHttp.responseText 
     } 
    }
    function GetXmlHttpObject()
    {
    var xmlHttp=null;
    try
     {
     // Firefox, Opera 8.0+, Safari
     xmlHttp=new XMLHttpRequest();
     }
    catch (e)
     {
     //Internet Explorer
     try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
        
     catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
     }
    return xmlHttp;
    }
    e questo è il codice della pagina getuser.php:

    Codice PHP:
    <?php
    include('dbclass.php');
    $q=$_GET["q"];

    $con DB::conn();

    $sql="SELECT * FROM cat WHERE Categoria = '".$q."'";

    $result mysql_query($sql);

    echo 
    "<table border='1'>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
    <th>Hometown</th>

    </tr>"
    ;

    while(
    $row = @mysql_fetch_array($result))
     {
     echo 
    "<tr>";
     echo 
    "<td>" $row['id_categoria'] . "</td>";
     echo 
    "<td>" $row['Categoria'] . "</td>";
     echo 
    "<td>" $row['Descrizione'] . "</td>";
     echo 
    "<td>" ."<img src=\"imagescat/$row[logo] \">""</td>";

     echo 
    "</tr>";
     }
    echo 
    "</table>";

    ?>
    Potete aiutarmi a capire dove è l'errore e naturalmente imparare un nuovo linguaggio insieme a Voi;

    Grazie ancora

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.