Joomla.it Forum
Componenti per Joomla! => Gestione Form => : Valgo54 30 Mar 2018, 19:21:21
-
Buongiorno
Uitilizzo cronoconnetivity 5 , ho la lista dei miei records e vorrei poterli rimuoverne
con un preavviso e un controllo che l'utente si cancelli il suo record ( al momento è un record per utente) .
Nella "conditions list" ho
_SELECTOR_
Model.user_id:User
Model.nome:Nome
Model.record.cognome:Cognome
_DELETE_:cancella
Se clicco cancella mi elimina in maniera diretta il record , come possibile attivare un messaggio di
previa conferma prima di rimuovere il record? In “Front list” ho le sezioni “view linkable” e “edit linkable” che
si riescono a indirizzare in qualche modo ma per la delete? .Mi sono creato anche una action “cancella”
ma al click non si attiva e il record viene eliminato senza preavviso.
Anche il pulsante _TOOLBAR_DELETE funziona allo stesso modo.
Qualche dritta qualche tutorial di aiuto da seguire ?
Grazie mille
-
Buongiorno
con questa
<?php
$user = JFactory::getUser();
return array('Model.user_id' => $user->id);
?>
riesco a estrarre il record dell'utente loggato. Riesco a rimuoverne il record.Prima di farlo vorrei fare comparire un messaggio di conferma alla rimozione.
Qualche dritta/idea?
Grazie
-
Prima di postare vedi l'anteprima, così ti accorgi di eventuale errata formattazione. Ho coorretto per far capire meglio
-
Ho l'impressione che dai record mostrati automaticamente da chronoconnectivity sia un problema inserire il controllo che proponi.
Forse dovresti dalla riga del record con un link mostrare il record in un form e inserire li la richiesta di conferma o no, se confermato il form procedere in setup del form a inserire codice per la rimozione del record.
-
Ciao Vales,
per richiamare e mostrare il record in un altro form hai qualche link/tutorial da passarmi?
Grazie
-
Ciao
tra i vari ho provato questo che viene richiamato cliccando su delete nella front list
model_name.delete:[ <a href='/index.php?option=com_chronoforms5&chronoform=form_name
&event=load&user_id={model_name.user_id}' >Delete</a> ][code]
ma la form non si apre. Oltre ad attivare la form devo passare il parametro user_id.
Un aiuto... :(
Grazie
-
In front list-setting usa php functions così
model.delete:return '<a href="'.JRoute::_('index.php?option=com_chronoforms5&chronoform=form_da_chiamare&gcb='.$row['model']['id']).'">Delete</a>';
il form da richiamare dovrà avere un db read dove filtra sul valore del record richiamato con il parametro gcb, che ritroverai nel form nell'elemento $form->data['gcb'] poi nel form, dopo conferma, in setup potrai rimuovere con php il record oppure settare il campo delete in modo opportuno. Dipende dalle tue preferenze.
-
Ciao Vales,
sono riuscito a richiamare da CCV5 il form CF5 di conferma cancellazione record.Il form , che ha un button "Rimuovi record", visualizza il record da cancellare. Sto cercando il codice php per richiesta conferma, per questo serve javascript?, e cancellazione.
Mi puoi dare qualche indicazione.
Grazie
-
Ciao, piccolo passo avanti..
nella impostazione del codice php di rimozione record la 1a riga è ok.Non trovo come a impostare la stringa di connessione al db ( credenziali utente root no password).
Qualche dritta...
grazie
$query = "DELETE from test_del WHERE user_id ='$user_id' ";
$ccv5 = " mysql:host=localhost;dbname=dbname" + ", root" + ",''";
-
Joomla ha delle proprie risorse per gestire il database, le cosidette API di joomla.
Qui trovi alcuni esempi di uso che rendono tutto più semplice.
https://docs.joomla.org/Accessing_the_database_using_JDatabase (https://docs.joomla.org/Accessing_the_database_using_JDatabase)
https://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase (https://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase)
-
Ok,Grazie
Ciao
-
Ciao,
questo codice sembra ok, la connessione è corretta e anche la stringa sql, ma sulla delete mi dà:
"Error deleting record: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1". Ho provato altre sintassi ma da sempre questo errore.( Line 1non è chiaro...).
Qualche dritta?
Grazie mille
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to delete a record
$sql = "DELETE FROM table_name WHERE user_id = $user_id";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>
-
a occhio mi sembra che non è definita la variabile $user_id
-
Ciao Vales,
mi sono perso una istruzione quando ho trascritto il post...
Il codice php sembra ok, la connessione è corretta e anche la stringa sql, ma sulla delete mi dà:
"Error deleting record: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1". Ho provato altre sintassi ma da sempre questo errore.
Se faccio un echo della istruzione sql è ok: sql=DELETE FROM table_name WHERE user_id = 1( Il campo user_id è un int)
Codice completo:
[/size]
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbname";
$user_id = '{user_id}';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to delete a record
$sql = "DELETE FROM table_name WHERE user_id = $user_id";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>
Grazie
-
Ciao Vales,
non riesco a trovare l'istruzione SQL corretta da utilizzare nella form CF5 per poter eliminare ,a richiesta, un record.
L'istruzione funzionante è la 1° utilizzando direttamente l'id da cancellare.Per le altre alcune danno "syntax error" altre non riportano errori ma il record non viene cancellato.
Non riesco a capire se il codice PHP , valido in altri contesti, che sto utilizzando è corretto o se con Joomla occorre utilizzare PHP con modalità diverse.
Grazie per un consiglio.
$sql = "DELETE FROM table_name WHERE user_id = 1";
$sql = "DELETE FROM table_name WHERE user_id = $user_id " ;
$sql = "DELETE FROM table_name WHERE user_id = ‘$user_id ‘";
$sql = "DELETE FROM table_name WHERE user_id = " . $user_id .";
$sql = "DELETE FROM table_name WHERE user_id = " . $user_id ";
$sql = "DELETE FROM table_name WHERE user_id = " {$user_id}' ";