un pulsante salva per ogni ID

Domenico2013

Utente Attivo
6 Ago 2013
178
0
16
Buongiorno a tutti del forum, ho 4 campi mysql, allego la foto. Vorrei che ad ogni ID fosse collegato un tasto salva per le eventuali modifche apportate alle caselle di testo dell'id corrispondente. Tutto ciò dovrebbe avvenire tramite jquery per evitare il refresh della pagina. Il mio problema: non riesco ad associare 1 pulsante salva per ogni Id. Se ho un solo ID il pulsante funziona bene, ma se sono già 2 ID i rispettivi pulsanti non funzionano. Spero di essere stato chiaro, grazie.
 

Allegati

  • Cattura333.PNG
    Cattura333.PNG
    11,8 KB · Visite: 347

Domenico2013

Utente Attivo
6 Ago 2013
178
0
16
Codice:
<head>
<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//al click sul bottone del form
$("#bottone").click(function(){
//associo variabili legenda
var id_1 = $("#id_1").val();
var modello = $("#modello").val();
var stato_rip = $("#stato_rip").val();
var nome = $("#nome").val();
//chiamata ajax
$.ajax({
//imposto il tipo di invio dati (GET O POST)
type: "POST",
//Dove devo inviare i dati recuperati dal form?
url: "insert_in_mysql.php",
//Quali dati devo inviare?
data: "stato_rip=" + stato_rip + "&modello=" + modello + "&nome=" + nome + "&id_1=" + id_1,
dataType: "html",
//Inizio visualizzazione errori
success: function(msg)
{
$("#risultato").html(msg); // messaggio di avvenuta aggiunta valori al db (preso dal file risultato_aggiunta.php) potete impostare anche un alert("Aggiunto, grazie!");
alert('Salvataggio effettuato con successo.');
},
error: function()
{
alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
}
});
});
});
</script>
</head>

<body>
<?php
$username = "root";
$password = "";
$database = "db_dymo_label";
mysql_connect("localhost", $username, $password);
@mysql_select_db($database) or die("Impossibile selezionare il database.");
$query = "SELECT * FROM tb_dymo_label";
$risultati = mysql_query($query);
$num = mysql_numrows($risultati);
mysql_close();
echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while ($i < $num) {
$id_1 = mysql_result($risultati, $i, "id");
$nome = mysql_result($risultati, $i, "nome");
$modello = mysql_result($risultati, $i, "modello");
$stato_rip = mysql_result($risultati, $i, "stato_rip");
//echo "<b>$id $nome $modello $stato_rip</b><br>";
$i++;
}
?>

<form>
<label>ID</label> <input type="text" name="id_1" id="id_1" value="<?php echo $id_1;?>"/>
<label>Modello</label> <input type="text" name="modello" id="modello" value="<?php echo $modello;?>"/>
<label>Stato Rip</label> <input type="text" name="stato_rip" id="stato_rip" value="<?php echo $stato_rip;?>"/>
<label>Nome</label> <input type="text" name="nome" id="nome" value="<?php echo $nome;?>"/>
<input type="button" id="bottone" value="Salva"/>
</form>
</body>
 

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
Una delle soluzioni potrebbe essere chiamare i vari campi con degli id in cui è presente un numero (1 per la prima riga,2 per la seconda,ecc.) fare una funzione con il numero come parametro:
HTML:
<label>ID</label> <input type="text" name="id_1" id="id1" value="<?php echo $id_1;?>"/>
<label>Modello</label> <input type="text" name="modello" id="modello1" value="<?php echo $modello;?>"/>
<label>Stato Rip</label> <input type="text" name="stato_rip" id="stato_rip1" value="<?php echo $stato_rip;?>"/>
<label>Nome</label> <input type="text" name="nome" id="nome1" value="<?php echo $nome;?>"/>
<input type="button" id="bottone" value="Salva" onclick="salva(1)"/>
(metti 1 sul primo, 2 sul secondo, ecc.)

Poi recuperi il numero con javascript:
HTML:
function salva(num){
var id = $("#id"+num).val();
var modello = $("#modello"+num).val();
var stato_rip = $("#stato_rip"+num).val();
var nome = $("#nome"+num).val();
//chiamata ajax
$.ajax({
//imposto il tipo di invio dati (GET O POST)
type: "POST",
//Dove devo inviare i dati recuperati dal form?
url: "insert_in_mysql.php",
//Quali dati devo inviare?
data: "stato_rip=" + stato_rip + "&modello=" + modello + "&nome=" + nome + "&id_1=" + id,
dataType: "html",
//Inizio visualizzazione errori
success: function(msg)
{
$("#risultato").html(msg); // messaggio di avvenuta aggiunta valori al db (preso dal file risultato_aggiunta.php) potete impostare anche un alert("Aggiunto, grazie!");
alert('Salvataggio effettuato con successo.');
},
error: function()
{
alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
}
});
}
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Ciao Tommy03, ho provato col tuo codice, purtroppo non va. Altro consiglio? Grazie.
mi sembra che lo script che hai postato non corrisponde alla figura,
puoi postare lo script che produce la figura ?

altrimenti @Tommy03 o altri devono riscrivere tutto di nuovo perché stai chiedendo una cosa diversa,
non un bottone ma far funzionare lo script su piu righe ( decisamente un lavoro )
 
Ultima modifica:

Domenico2013

Utente Attivo
6 Ago 2013
178
0
16
Codice:
<head>
<title>Jquery</title>

<script type="text/javascript" src="jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//al click sul bottone del form
$("#bottone").click(function(){
//associo variabili legenda
var id_1 = $("#id_1").val();
var modello = $("#modello").val();
var stato_rip = $("#stato_rip").val();
var nome = $("#nome").val();
//chiamata ajax
$.ajax({
//imposto il tipo di invio dati (GET O POST)
type: "POST",
//Dove devo inviare i dati recuperati dal form?
url: "insert_in_mysql.php",
//Quali dati devo inviare?
data: "stato_rip=" + stato_rip + "&modello=" + modello + "&nome=" + nome + "&id_1=" + id_1,
dataType: "html",
//Inizio visualizzazione errori
success: function(msg)
{
$("#risultato").html(msg); // messaggio di avvenuta aggiunta valori al db (preso dal file risultato_aggiunta.php) potete impostare anche un alert("Aggiunto, grazie!");
alert('Salvataggio effettuato con successo.');
},
error: function()
{
alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
}
});
});
});
</script>
</head>

<body>


<?php

include("leggere_credenziali_mysql.php");

mysql_connect("localhost", $user, $password);
@mysql_select_db($database) or die("Impossibile selezionare il database");

$query="SELECT * FROM $tabella";

$risultati = mysql_query($query);
$num = mysql_numrows($risultati);

if ($num == '') {
        echo "<label style=\"color:red\">Non Esiste nel Database tale contatto.</label>";
        echo header("refresh: 2; index_lettura_da_mysql.php");

exit;
    }

mysql_close();

?>

<table border="0">

<?php

$i = 0;
while ($i < $num) {

$id_1 = mysql_result($risultati, $i, "id");
$modello = mysql_result($risultati, $i, "modello");
$stato_rip = mysql_result($risultati, $i, "stato_rip");
$nome = mysql_result($risultati, $i, "nome");
?>

<tr>
<td>
<form>
<label>ID</label> <input type="text" name="id_1" id="id_1" value="<?php echo $id_1;?>"/>
<label>Modello</label> <input type="text" name="modello" id="modello" value="<?php echo $modello;?>"/>
<label>Stato Rip</label> <input type="text" name="stato_rip" id="stato_rip" value="<?php echo $stato_rip;?>"/>
<label>Nome</label> <input type="text" name="nome" id="nome" value="<?php echo $nome;?>"/>
<input type="button" id="bottone" value="Salva"/>
</form>
</td>

</tr>

<?php
$i++;
}
?>

</table>



<br/>

</body>
 

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
Allora al posto di mettere i numeri come avevo scritto nel post precedente, metti $i+1, mentre il javascript lascialo uguale
 

Domenico2013

Utente Attivo
6 Ago 2013
178
0
16
Ciao, purtroppo non riesco a farlo funzionare. Puoi postarci il codice completo di modifica? sempre se non è un disturbo. Grazie.
Scusami, nel file 'insert_in_mysql.php' ho questo codice, sta scritto bene per ricevere dalle variabili della jquery? In pratica, la pagina 'insert_in_mysql.php' come fa a sapere su quale pulsante 'Salva' associato all'id ho cliccato per recepire i dati? Grazie.
Codice:
<body>
<?php
$id_da_inviare = $_REQUEST['id_da_inviare'];
$stato_rip = $_REQUEST['stato_rip'];
$consegnato = $_REQUEST['consegnato'];

include("leggere_credenziali_mysql.php"); //includo file configurazione

$conn = new mysqli($host, $user, $password, $database);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "UPDATE $tabella SET stato_rip = '$stato_rip', consegnato = '$consegnato' WHERE id=$id_da_inviare";

if ($conn->query($sql) === TRUE) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . $conn->error;
}

$conn->close();
?>


</body>
 
Ultima modifica:

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
Vicenza
In pratica, la pagina 'insert_in_mysql.php' come fa a sapere su quale pulsante 'Salva' associato all'id ho cliccato per recepire i dati?
Fai come nel post che ho scritto sopra:
-dentro al while hai i codici per le varie righe: ognuno dei campo deve avere un id ad esempio
PHP:
id="modello<?php echo $i;?>"
-Anche il bottone per salvare deve essere determinato, quindi ci metti
PHP:
onclick="salva(<?php echo $i;?>)"
-fatto ciò per ogni riga hai dei campi con un id contenente un numero n e un pulsante (salva) che passa come parametro il numero n
-poi usando il codice che avevo messo nel post sopra crei una funzione JavaScript, che prende come parametro n, il numero inviato cliccando su Salva.

function salva(num){ var id = $("#id"+num).val(); var modello = $("#modello"+num).val(); var stato_rip = $("#stato_rip"+num).val(); var nome = $("#nome"+num).val();
-poi con questo codice, dopo aver ricevuto il numero della riga (variabile num) prendi i valori dei campo di quella stessa riga (id, modello, stato_rip, nome) e li passi nella chiamata ajax come nel codice sopra.
-infine nel file PHP devi prelevare i nomi giusti, quindi se scrivi:

data: "stato_rip=" + stato_rip + "&modello=" + modello + "&nome=" + nome + "&id_1=" + id_1,
Nel file PHP devi riceverli così:
PHP:
$stato_rip=$_POST['stato_rip'];
$modello=$_POST['modello'];
$nome=$_POST['nome'];
$id_1=$_POST['id_1'];
Non così:

$id_da_inviare = $_REQUEST['id_da_inviare']; $stato_rip = $_REQUEST['stato_rip']; $consegnato = $_REQUEST['consegnato'];
 
  • Love
Reactions: Domenico2013

Domenico2013

Utente Attivo
6 Ago 2013
178
0
16
Buongiorno al forum. Tommy03, voglio ringraziarti infinitamente per la spiegazione precisa e soprattutto funzionante al 100%.
Davvero non so come ringraziarti :):):) Funziona proprio come serve a me. Grazieeeeeeeeeeeeeeeeeeeeeeeeee.:):)
 
Discussioni simili
Autore Titolo Forum Risposte Data
L [Javascript] pulsante form "salva come" in acrobat Javascript 1
A pulsante salva in pagina php PHP 5
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
Y Pulsante avanti XML 0
J disabilitare pulsante Java 4
A pulsante di update campo mysql con javascript Javascript 2
D Pulsante aggiungi al carrello nello slider prodotti in offerta WordPress 4
F Passare variabile a pulsante in finestra modale PHP 2
S spostare il pulsante menu dropdown HTML e CSS 8
A Come creare pulsante donazione PayPal HTML e CSS 5
Cosina Aggiungere pulsante pause/play a slideshow Javascript 0
M [MS Access] Pulsante su maschera che esegue azioni su altra maschera MS Access 3
M [PHP] [HTML] Centrare in verticale un pulsante in una tabella PHP 3
S [Javascript] click su pulsante Javascript 1
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
M [MS Access] pulsante inattivo MS Access 10
C [PHP] Aggiungere pulsante paypal PHP 2
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
L [Javascript]Aprire div con click e chiuderlo con altro pulsante Javascript 2
spider81man [PHP] Pulsante SUBMIT per download diretto dei file PHP 9
Francesco Oliviero Aggiungere comando a pulsante HTML HTML e CSS 1
V Ciclo for per Pulsante in JavaScript Javascript 7
ste80 [MS Access] Impossibile aprire una maschera da pulsante MS Access 2
A [Javascript] Alert su Pulsante Esci Javascript 0
L php - pulsante premuto che mostra #div PHP 3
D [HTML] come Creare questo pulsante a 3 strisce? HTML e CSS 2
X Wordpress woocommerce non compare pulsante acquista prodotto WordPress 1
M Creare tabella da pulsante php PHP 6
Occhioverde [PHP] Incrementare variabile al click di un pulsante PHP 5
B [WordPress] inserire pulsante like per ogni post WordPress 2
T [HTML] Problema pulsante scroll down su ecommerce CMS (Content Management System) 0
D [WordPress] [PHP] Pulsante per auto riempire i campi in un modulo WordPress 1
S [PHP] Abilitare un pulsante dopo scelta file... PHP 3
Z [PHP] Informazione al pulsante REFRESH PHP 2
webmachine [WOOCOMMERCE][WORDPRESS] Cambiare testo pulsante Acquista E-Commerce 0
R [HTML] Pulsante con effetto dissolvenza (fading) HTML e CSS 10
deejayr Creare un link URL ad un pulsante di una pagina web. Javascript 4
A [Javascript] Pulsante condivisone Javascript 0
G Ciclo if php per far comparire un pulsante solo nel caso in cui una variabile sia 0 PHP 2
G Problema php relativo a funzione di un pulsante PHP 8
O cambio destinazione pulsante indietro del browser. HTML e CSS 0
D Creare pulsante cliccabile wordpress con lista a discesa WordPress 0
C pulsante like stile facebook Ajax 3
M Pulsante modifica HTML e CSS 20
M Creare pulsante condividi di fb alla propria pagina web Social Media Marketing 1
V Jquery non nasconde pulsante jQuery 1
E php problema incremento e decremento di 2 variabili con click da pulsante PHP 0
O Pulsante Share per Facebook PHP 0
L php/mysql - anteprima notizia con pulsante PHP 2
P Cambiare il valore di un campo tabella con un pulsante cliccabile PHP 2

Discussioni simili