Newsgroup: it.comp.www.php
Titolo: problema con confirm e PHP.

Salve a tutti ho questa esigenza:
Ho realizzato una pagina in php che elenca il contenuto di un database e
consente cliccando su una immagine a fianco del file (il classico cestino)
di eliminare il record selezionato.
Il problema è che il link alla pagina PHP_SELF in sostanza imposta la
variabile $cancella a si e c'è una condizione:
if ($cancella) {
... stringhe per eliminare il record ...
}
Il punto è che vorrei inserire un "confirm" a seguito del click sul
"cestino" che dica:
"Sicuro di voler cancellare il documento?"
Ho provato ad inserire in classico confirm javascript ma anche se rispondo
annulla il record viene comunque cancellato.
Idee?
--------------------------------
Inviato via 
http://usenet.libero.it

 "Sicuro di voler cancellare il documento?"
Io uso questo codice qua e funziona benissimo...
<a href="pagina.php?action=DELETE&ID=XXX" onClick="return confirm('Confermi
cancellazione?')">

Inserito lo stesso codice non funzia.
Non chiede nemmeno la conferma.

--------------------------------
Inviato via 
http://usenet.libero.it

Puoi postare le righe di codice? magari è un errore html
(posta sia col tuo che col mio codice)

 Inviato via 
http://usenet.libero.it
io ho creato una pseudo pagina di conferma...ossia č da lě che parte il
comando di DELETE
...
LukeNukem

OK.
<?php
require_once("../LoginClass.php");
$db = db_connection();
$db_object = db_connection2();
$colors = $db_object->query("SELECT * FROM Layout WHERE id=1");
$LY = $colors->fetchRow();
$login = new Login($db);
if ($login->checkLogin($user,$pass,$remember)) {?>
<html>
<head>
<title>Documento senza titolo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../mystile.css" rel="stylesheet" type="text/css">
</head>
<?php
$check = $db_object->query("SELECT * FROM Circolari WHERE anno='$anno' GROUP
BY anno, progressivo ORDER BY progressivo ");
	if (DB::isError($check)) { ?>
	 <div align="center">
     <table width="100%" height="100%" border="0">
     <tr>
     <td valign="middle"> <div align="center"><img src="../errore.gif"
width="138" height="138"><BR></div>
     <div align="center"><span class="testo13pxgred">ERRORE DEL
DATABASE!<br><br><br>
     <a href="javascript:history.back()">Torna indietro</a></span></div></td>
     </tr>
	 </table>
	 <?php die();
	 }
 
$RS1 = $check->fetchRow();
$RS1_trows = $check->numRows();
$check2 = $db_object->query("SELECT anno FROM Circolari GROUP BY anno ORDER
BY anno");
	if (DB::isError($check2)) { ?>
		<div align="center">
  		<table width="100%" height="100%" border="0">
    	<tr>
      	<td valign="middle"> <div align="center"><img src="../errore.gif"
width="138" height="138"><BR></div>
        <div align="center"><span class="testo13pxgred">ERRORE DEL
DATABASE!<br><br><br>
        <a href="javascript:history.back()">Torna indietro</a></span></div></td>
    	</tr>
  		</table>
		<?php die();
    }
$RS2 = $check2->fetchRow();
$RS2_trows = $check2->numRows();
$directory2 = str_replace(" ", "%20", stripslashes($directory));
if ($cancella) {
    $erase = $db_object->query("DELETE FROM Circolari WHERE progressivo =
'$delnum' and anno = '$delanno'");
	if (DB::isError($erase)) { ?>
		<div align="center">
  		<table width="100%" height="100%" border="0">
    	<tr>
      	<td valign="middle"> <div align="center"><img src="../errore.gif"
width="138" height="138"><BR></div>
        <div align="center"><span class="testo13pxgred">ERRORE DEL
DATABASE!<br><br><br>
        <a href="javascript:history.back()">Torna indietro</a></span></div></td>
    	</tr>
  		</table>
		<?php die();
		} ?>
 <div align="center">
  <table width="100%" height="100%" border="0">
    <tr>
      <td valign="middle"> <div align="center"><img src="../ok.gif" width="138"
height="138"><BR></div>
        <div align="center"><span class="testo13pxggreen">Eliminazione<BR>circolare
effettuata!<br><br><br>
          <a href="javascript:history.back()">Altra circolare</a></span></div></td>
    </tr>
  </table>
</div>
<?php } else {?>
<table width="100%" border="0">
  <tr>
    <td width="60%" valign="bottom"><span class="testo18pxgorange"><?php echo
stripslashes($directory) ; ?></span>
    </td>
    <td width="40%" valign="bottom">
<p align="right" class="testo11pxg">Anno: <span
class="testo13pxgorange"><?php echo $anno ; ?></span><span
class="testo11pxg"> - Documenti:</span><span class="testo13pxgorange">
        <?php echo $RS1_trows ; ?></span> <span class="testo11pxg"></span><BR>
        Anni disponibili:
        <?php if ($RS2_trows == 0) { ?>
        <span class="testo11pxgorange">Nessuno</span>
        <?php } else { do { ?>
        <span class="testo11pxgorange"><a class="orange2" href=<?php echo
$_SERVER['PHP_SELF']; ?>?directory=<?php echo $directory2 ?>&anno=<?php echo
$RS2['anno']; ?>>'<?php echo substr($RS2['anno'], 2); ?>
        </a></span>
        <?php } while ($RS2 = $check2->fetchRow()); }?>
      </p></td>
  </tr>
</table>
<table width="100%" border="0">
  <tr>
    <td width="5%" bgcolor="<?php echo $LY['sfondotb']; ?>"
class="testo10pxg">Circ.</td>
    <td width="4%" bgcolor="<?php echo $LY['sfondotb']; ?>"
class="testo10pxg">Anno</td>
    <td width="51%" bgcolor="<?php echo $LY['sfondotb']; ?>"
class="testo10pxg">Oggetto</td>
    <td width="23%" bgcolor="<?php echo $LY['sfondotb']; ?>"
class="testo10pxg">Data</td>
    <td width="14%" bgcolor="<?php echo $LY['sfondotb']; ?>"
class="testo10pxg">Dim.</td>
    <td width="3%" bgcolor="<?php echo $LY['sfondotb']; ?>"
class="testo10pxg">Canc.</td>
  </tr>
  <?php if ($RS1_trows == 0) { } else {
   do { ?>
  <tr>
	<td class="testo10px"><?php echo $RS1['progressivo']; ?> </td>
    <td class="testo10px"><?php echo $RS1['anno']; ?></td>
    <td class="testo10px"><?php echo $RS1['descrizione']; ?></td>
    <td class="testo10px"><?php echo $RS1['data']; ?></td>
    <td class="testo10px"><?php echo $RS1['dimensione']; ?></td>
    <td class="testo10px" align="center"><div align="center"><a href=<?php echo
$_SERVER['PHP_SELF']; ?>?delnum=<?php echo $RS1['progressivo'];
?>&delanno=<?php echo $RS1['anno']; ?>&cancella=SI onClick="return
confirm('Confermi
cancellazione?')"><img src="../cestino.gif" border="0"></a></div></td>
   </tr>
  <?php } while ($RS1 = $check->fetchRow()); } ?>
</table>
</body>
</html>
<?php }
$colors->free();
$check->free();
$check2->free();
$db->disconnect();
$db_object->disconnect();
} else {
	header ("location:../noaccess.php");
}?>


Mancavano le virgolette su href
prova cosě e fammi sapere
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?delnum=<?php echo
$RS1['progressivo'];?>&delanno=<?php echo $RS1['anno']; ?>&cancella=SI"
onClick="return confirm('Confermi cancellazione?')"><img
src="../cestino.gif" border="0"></a>
ciao

FUNZIONA ADESSO, GRAZIEEEEEEE!!!
PS: Il codice che ti ho postato fa tanto schifo?

--------------------------------
Inviato via 
http://usenet.libero.it

Non lo ho nemmeno guardato! sono andato diretto al punto!
Cmq non mi pareva male, personalmente non mi piace molto l'uso delle
classi... ma col PHP5 mi sa che mi converrà adeguarmi per stare al passo coi
tempi!


 Idee?
Questo è un problema per un altro NG magari di javascript... ma rispondiamo
lo stesso.
Quando su un pulsante chiedi un confirm, la funzione confirm restituisce un
valore numerico in funzione del tasto premuto.
Quindi in javascript dovrai avere una funzione che analizza il valore
ritornato dalla confirm e:
1) fa il submit del form se hai cliccato su OK
2) NON fa il submite negli altri casi
Ciao
Jul


La programmazione ad oggetti ha un netto vantaggio che Php non riusciva, per
sua natura, ad evitare.
L'ìincastro di codice nel linguaggio.
Scrivere x righe di codice in mezzo a pagine html oppure in file .inc da
includere è sempre una brutta cosa
per l'usabilità del codice e per la modifica grafica con DW o altri
html-editor
Avere tutto il codice in un unico file (che contiene tutte le classi, ad
esempio) e organizzato in modo intelligente, rende piu' facile la
programmazione, la portabilità e l'aggiornamento del codice.
Immagina che hai fatto un sistema di logging per utenti... ne hai una
versione che usa i database
Te ne serve una versione che usa i file di testo.
Se hai tutto il codice in una classe, definite le funzioni, i parametri in
ingresso e quelli di ritorno, senza toccare le pagine html
ti basterà riscrivere le funzioni di lettura/scrittura delle info su files
al posto che update/insert/delete su DB
questo senza cambiare schema logico, pagine html etc etc
E dal punto di vista economico, potrai 'cryptare' un solo file con le classi
e il codice, fare una documentazione per un 'sotto-sviluppatore' e digli
'questo oggetto ha queste proprietà e queste funzioni, arrangiati ad usarle'
senza che ti possa 'rabbare' il codice...cosa non da poco no ?
E' quello che si faceva anni fa...si scrivevano delle librerie e si
vendevano cryptate (compilate a dire il vero)
Ciao
Jul