Confirm[Js], PHP/MySQL

Buona sera a tutti!

Come al solito posto qui un problemino dal quale non riesco a venirne a capo.

Dunque, ho creato una funzione che mi elimina una categoria già creata dalla tabella:

eccola qui:

function DeleteCategory($title) {
   @include_once "config.php";

   $sql = "DELETE FROM `categories` WHERE cat_title='$title'";
   if($exe = mysql_query($sql)) {
      echo "<script>alert(\"Eliminazione della categoria $title avvenuta con successo!!!\");</script>";
   mysql_close();
 return 1;
   }
return 0;
}

Ho poi un file che ne permette e ne gestisce l'eliminazione:

<?php

if(isset($_POST['submit'])) {
?>

<script>
   if (confirm("Vuoi realmente eliminare <?php echo $_POST['categoria'];?>?"))
   {
      <?php DeleteCategory($_POST['categoria']); ?>
      document.write("")
   }else{
      alert("Procedura Di Eliminazione Categoria Annullata!!")
   };
</script>

<?php   
}

?>

Tuttavia in questo modo apache mi da' errore, probabilmente perchè la sintassi javascript risulta essere errata, eliminando di fatti la stringa php sul document.write va tutto ok.

Ho provato anche ad incorporare nel document.write la funzione di eliminazione ma nulla, stesso problema.

Consigli?

Grazie in anticipo!!!

inviato 7 anni fa
Newbie
X 0 X

Ciao, non riesco a capire come fai a mescolare codice javascript, eseguibile dal lato client, con quello php, eseguibile sul server...

Non si tratta di uno scritto ajax vero?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Ciao, non riesco a capire come fai a mescolare codice javascript, eseguibile dal lato client, con quello php, eseguibile sul server...

Non si tratta di uno scritto ajax vero?

Ti rendo subito noto che di javascript, ajax e simili non ci capisco quasi niente, giusto qualche alert e confirm...

Il mio intento era quello di riuscire a far verificare questo script javascript confirm una volta che una determinata variabile era definita e porre quindi l'attenzione dell'utente sulla cancellazione della categoria...

Si -> richiamo la funzione php che cancella la categoria

No -> esco dall'if ma prima ci piazzo un alert che avvisa l'aborto dell'operazione..

risposto 7 anni fa
Newbie
X 0 X

Nemmeno io uso molto il javascript, preferisco evitarlo.

Comunque così dal punto di vista logico è scorretto il funzionamento: javascript lavora lato client, php lato server, di conseguenza puoi fare il controllo javascript che dici te, se l'utente dice ok lo indirizzi alla pagina php che esegue la tua funzione (non il richiamo come hai fatto te, deve essere reindirizzato il browser web, a meno che non usi ajax), tale pagina php completata la funzione fa il redirect a quello che preferisci te, non so se mi sono spiegato...

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Nemmeno io uso molto il javascript, preferisco evitarlo.

Comunque così dal punto di vista logico è scorretto il funzionamento: javascript lavora lato client, php lato server, di conseguenza puoi fare il controllo javascript che dici te, se l'utente dice ok lo indirizzi alla pagina php che esegue la tua funzione (non il richiamo come hai fatto te, deve essere reindirizzato il browser web, a meno che non usi ajax), tale pagina php completata la funzione fa il redirect a quello che preferisci te, non so se mi sono spiegato...

Ho capito, ma ho una curiosità: e se vorrei utilizzare ajax per non creare un'ulteriore pagina php e richiamare direttamente la funzione che elimina la categoria come dovrei fare?

Intanto grazie per le risposte e per la tua disponibilità  ;)

risposto 7 anni fa
Newbie
X 0 X

Anche con ajax fai un richiamo comunque di una pagina php ma non ricarichi l'intera pagina già presente nel browser web.

Potresti però procedere in questo modo, nel file php che genera la tua pagina puoi mettere un controllo per l'array POST (dato hai citato quello), in questo modo nel tuo javaxcript fai il controllo che hai citato prima, se positivo invii i dati del form che hai creato.

In nome_pagina.php prima di eseguire tutto il codice metti il controllo ad es.

<?php
if($_POST)
    DeleteCategory($_POST['categoria']);
else
    ......
    tutto il resto
    .....

Cioè se usi l'array POST sicuramente stai usando un form, potresti mettere un controllo javascript sul tasto "invia" in modo che prima di inviare tutti i dati del form chieda la conferma che hai citato te.

Spero di essere stato chiaro.

P.S. ovviamente devi implementare i controlli di sicurezza per le variabili passate.

risposto 7 anni fa
Mario Santagiuliana
X 0 X

0k, grazie per le delucidazioni ;)

Ho deciso per l'utilizzo di javascript e del reindirizzamento, tuttavia ho un problema:

ho creato una funzione javascript:

<script language="JavaScript">
 function show() {
   if (confirm("Vuoi realmente eliminare la categoria selezionata?"))
   {
      location.href="./admin/case/eliminazione.php";
   }else{
      alert("Procedura Di Eliminazione Categoria Annullata!!")
   };   
}
</script>

con il dovuto form in questo modo:

<form action=" " method="post" onsubmit="show()">

In tal modo il form una volta che viene inviato esegue il confirm e se tutto va bene mi reindirizza alla pagina php contenente la funzione che elimina la categoria.

Cio' tuttavia non avviene, in quanto aggiorna semplicemente la pagina dopo aver dato ok, e non effettua alcun reindirizzamento..

risposto 7 anni fa
Newbie
modificato 7 anni fa
X 0 X

Sbagli la logica di funzionamento, tieni a mente javascript viene eseguito lato client, php lato server.

Ora la logica che devi seguire è:

1) chiamata via browser a pagina1.php

2) restituisce codice html al browser con il form

3) utente compila il form

4) clicca il bottone invia

5) si genera un evento javascript

6) si apre una finestra javascript di conferma

7) se positiva invio dei dati alla paginaElaborazione.php (potrebbe essere anche pagina1php, lo decidi tu)

8 ) arrivano i dati del form tramite array post alla paginaElaborazione.php sul server

9) vengono processati i dati

10) la paginaElaborazione.php fa il redirezionamento alla pagina che preferisci.

E' più chiaro?

risposto 7 anni fa
Mario Santagiuliana
modificato 7 anni fa
X 0 X

Sbagli la logica di funzionamento, tieni a mente javascript viene eseguito lato client, php lato server.

Ora la logica che devi seguire è:

1) chiamata via browser a pagina1.php

2) restituisce codice html al browser con il form

3) utente compila il form

4) clicca il bottone invia

5) si genera un evento javascript

Evento javascript grazie a onsubmit esatto?

Quindi:

<form action="" method="post" onsubmit="show()">
6) si apre una finestra javascript di conferma

E questo accade grazie alla funzione che viene richiamata con l'evento onsubmit:

<script language="JavaScript">
 function show() {
   if (confirm("Vuoi realmente eliminare la categoria selezionata?"))
   {
      location.href="http://www.google.it";
   }else{
      alert("Procedura Di Eliminazione Categoria Annullata!!")
   };   
}
</script>

7) se positiva invio dei dati alla paginaElaborazione.php (potrebbe essere anche pagina1php, lo decidi tu)

8 ) arrivano i dati del form tramite array post alla paginaElaborazione.php sul server

Questi sono i passaggi che non riesco a mettere in atto...

Nella funzione sopra ci ho messo google proprio per verificare se era l'indirizzo del file che processa i dati sbagliato, ma nulla, non và neanche così...

 :( :( :(

risposto 7 anni fa
Newbie
X 0 X

Allora procedi per gradi:

Prima crei tutta la struttura php e html, dopodichè inserisci il controllo javascript:

1) pagina1.php ti crea il codice html, es. così:

<html>
   <head>
      <title>Invio</title>
   </head>
   <body>
      <form name="form" method="post" action="paginaElaborazione.php">
         <input type="text" name="testo" />
         <br />
         <input type="submit" value="invia"/>
      </form>
   </body>
</html>

2) crei la paginaElaborazione.php (può essere anche la stessa pagina1.php), fai il controllo se è arrivato un array post e fai compiere al server ciò che preferisci, finito il quale dai il redirect alla pagina che preferisci usando il php:

<?php
...
istruzioni che preferisci;
...
header("location: http://pagina_che_preferisci");

3) se funziona tutto correttamente allora passi a creare la conferma lato client con javascript, modifichi il codice html iniziale per esempio così:

<html>
   <head>
      <title>Invio</title>
   </head>
   <body>
      <form name="form" method="post" action="paginaElaborazione.php" onsubmit="return confirm('Vuoi realmente eliminare la categoria selezionata?');">
         <input type="text" name="testo" />
         <br />
         <input type="submit" value="invia"/>
      </form>
   </body>
</html>

Altro modo potrebbe essere così:

<html>
   <head>
      <title>Invio</title>
   </head>
   <body>
      <form name="form" method="post" action="paginaElaborazione.php">
         <input type="text" name="testo" />
         <br />
         <input type="submit" value="invia" onclick="return(confirm('Vuoi realmente eliminare la categoria selezionata?'))"/>
      </form>
   </body>
</html>
risposto 7 anni fa
Mario Santagiuliana
X 0 X

ok, ho appena testato il tutto e funziona perfettamente!

Non sarei mai riuscito ad arrivare a questo:

onclick="return(confirm('Vuoi realmente eliminare la categoria selezionata?'))"

Purtroppo javascript per me è un luogo ancora buio anche se questo è solo l'abc  :-\

Grazie per la tua disponibilità e soprattutto grazie per l'esempio finale  :)

A presto,

buona serata!

risposto 7 anni fa
Newbie
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda