Récuperer une ligne d'un tableau avec une checkbox
Résolu/Fermé
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
-
14 juin 2022 à 12:06
kyller_4432 Messages postés 45 Date d'inscription mardi 14 juin 2022 Statut Membre Dernière intervention 21 juin 2023 - 17 juin 2022 à 08:25
kyller_4432 Messages postés 45 Date d'inscription mardi 14 juin 2022 Statut Membre Dernière intervention 21 juin 2023 - 17 juin 2022 à 08:25
A voir également:
- Récuperer une ligne d'un tableau avec une checkbox
- Tableau word - Guide
- Code ascii tableau - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Recuperer message whatsapp supprimé - Guide
- Tableau croisé dynamique - Guide
3 réponses
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
4 741
14 juin 2022 à 13:05
14 juin 2022 à 13:05
Quel rapport entre ce que tu nous montres et le langage java ?
Pourquoi as tu recréé une question ?
Pourquoi as tu recréé une question ?
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
4 741
15 juin 2022 à 10:58
15 juin 2022 à 10:58
En gros
Et dans le fichier de traitement php appellé par ton script AJAX .. tu récupères les données en POST ... et tu les sauvegardes dans ta bdd
<?php //session_start(); //connexion à la bdd // penser à activer la gestion des erreurs PDO : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs require_once ("connect_mysql.php"); //if(isset($_REQUEST['block'])){$block = $_REQUEST['block'];}else{$block='none';} $Inter = !empty($_GET['Inter']) ? trim($_GET['Inter']) : NULL; $Quantite = array(); $RefPiece = array(); $PrixU = array(); $Fournisseur = array(); $i = 0; //on passe par les requêtes préparées pour éviter les failles d'injection sql $sql = "SELECT * , QtePiece * PrixUnitairePiece AS Total FROM suivi_piece_intervention Inner join article on suivi_piece_intervention.RefPiece = article.Codearticle Where (Intervention = :inter )"; $datas = [':inter' => $Inter]; //Execution de la requete préparée try { $requete = $bdd->prepare($sql); $requete->execute($datas); $commandes = $requete->fetchAll(); // on stocke le résultat dans un array } catch (Exception $e) { // en cas d'erreur : echo " Erreur ! " . $e->getMessage(); echo " Les datas : "; print_r($datas); } //si il y a des commandes if (!empty($commandes)) { //on boucle dessus foreach ($commandes as $i => $donnees_tableau_1) { $Designation = $donnees_tableau_1['Designationpiece']; $RefPiece = $donnees_tableau_1['RefPiece']; $qte = $donnees_tableau_1['QtePiece']; $PrixU = $donnees_tableau_1['PrixUnitairePiece']; $PrixT = $donnees_tableau_1['Total']; $Fournisseur = $donnees_tableau_1['Fournisseur']; echo '<tr style="margin-top:0px;">'; //echo '<input type="text" id="num_ligne" value="'.$i.'"/>'; echo '<td class="text-center border-left border-right" style="width:16%; height:2.4em;" id="input_RefPiece_' . $i . '" >' . $RefPiece . '</td>'; echo '<td class="text-center border-left border-right" style="width:22%; height:2.4em;" id="input_designation_' . $i . '" >' . $Designation . '</td>'; echo '<td class="text-center border-left border-right" style="width:16%; height:2.4em;" id="input_Qte_' . $i . '" >' . $qte . '</td>'; echo '<td class="text-center border-left border-right" style="width:16%; height:2.4em;" id="input_prix_' . $i . '" >' . $PrixU . '</td>'; echo '<td class="text-center border-left border-right" style="width:17%; height:2.4em;" id="input_Total_' . $i . '" >' . $PrixT . '</td>'; echo '<td class="text-center border-left border-right" style="width:10%; height:2.4em;" id="input_fournisseur_' . $i . '" >' . $Fournisseur . '</td>'; echo' <td class="text-center border-left border-right" style="width:3%; height:2.4em;"> <input type="checkbox" name="valider[]" class="chkb-valider" data-row="' . $i . '" id="input_Valider_' . $i . '" value="Oui"> </td>'; } } ?> <script> //on attache l'évènement CLICK sur les cases à cocher $('.chkb-valider').click(function (){ //on récupère le numéro de ligne concernée let ligne = $(this).data('row'); sendRowAjax(ligne); }); function sendRowAjax(ligne) { let input_RefPiece = $("#input_RefPiece_" + ligne).val(); let input_designation = $("#input_designation_" + ligne).val(); // .. etc.. //on construit la variable qui va contenir les données à envoyer en ajax let datas = {RefPiece: input_RefPiece, designation: input_designation}; let urlFichierAjx = "scriptdetraitement.php"; // a adapter selon tes besoin //on envoi les données en AJAX au format JSON en POST $.ajax({ type: "POST", url: urlFichierAjx, data: datas, dataType: "json" }).done(function (reponse) { console.log('REPONSE OK AJAX', response); }).fail(function (jqXHR, textStatus) { console.log('ERREUR AJAX', jqXHR, textStatus); }); } </script>
Et dans le fichier de traitement php appellé par ton script AJAX .. tu récupères les données en POST ... et tu les sauvegardes dans ta bdd
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
4 741
15 juin 2022 à 16:49
15 juin 2022 à 16:49
Tu as mis en résolu .. donc .. c'est bon ?
... et bien...; DE RIEN alors...
... et bien...; DE RIEN alors...
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
>
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
Modifié le 16 juin 2022 à 09:48
Modifié le 16 juin 2022 à 09:48
J'ai crus que c’était bon mais non ce serai pas plus simple que si on coche une checkbox sa met "texte" dans la BDD et récupérer cette valeur pour la page d'après
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
4 741
>
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
16 juin 2022 à 10:07
16 juin 2022 à 10:07
je n'ai rien compris......
Qu'est-ce que tu obtiens actuellement
En quoi ça ne correspond pas précisément à ton besoin ?
Que veux tu modifier ?
Et puis.. tu as complété le code que je t'ai donné ?
Tu as créé le script PHP pour insérer les données en bdd ?
SInon.. normal que ça ne marche pas..
Quoi qu'il en soit, il faut que tu fasses un effort de rédaction et d'explication .. sinon on ne s'en sortira jamais !
Qu'est-ce que tu obtiens actuellement
En quoi ça ne correspond pas précisément à ton besoin ?
Que veux tu modifier ?
Et puis.. tu as complété le code que je t'ai donné ?
Tu as créé le script PHP pour insérer les données en bdd ?
SInon.. normal que ça ne marche pas..
Quoi qu'il en soit, il faut que tu fasses un effort de rédaction et d'explication .. sinon on ne s'en sortira jamais !
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
>
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
16 juin 2022 à 10:13
16 juin 2022 à 10:13
En gros j'aimerais quand je coche la checkbox que dans la BDD il y est écrit Attente commande pour ensuite récuperer Attente commande pour la page d'apres
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
>
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
16 juin 2022 à 10:14
16 juin 2022 à 10:14
quand je fais avec votre code je tombe a chaque fois sur erreur ajax
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
16 juin 2022 à 10:26
16 juin 2022 à 10:26
Sa me met cette erreur :
ERREUR AJAX
Object { readyState: 4, setRequestHeader: setRequestHeader(e, t), getAllResponseHeaders: getAllResponseHeaders(), getResponseHeader: getResponseHeader(e), overrideMimeType: overrideMimeType(e), abort: abort(e), state: state(), always: always(), then: then(), promise: promise(e)
, … }
parsererror
Quand j'ai pris votre code, j'ai modifié ce que j'avais besoin en fonction.
ERREUR AJAX
Object { readyState: 4, setRequestHeader: setRequestHeader(e, t), getAllResponseHeaders: getAllResponseHeaders(), getResponseHeader: getResponseHeader(e), overrideMimeType: overrideMimeType(e), abort: abort(e), state: state(), always: always(), then: then(), promise: promise(e)
, … }
parsererror
Quand j'ai pris votre code, j'ai modifié ce que j'avais besoin en fonction.
<?php //session_start();
include ("connect_mysql.php");
//if(isset($_REQUEST['block'])){$block = $_REQUEST['block'];}else{$block='none';}
$Inter = !empty($_GET['Inter']) ? trim($_GET['Inter']) : NULL;
$Quantite =array();
$RefPiece = array();
$PrixU = array();
$Fournisseur = array();
$i=0;
//on passe par les requêtes préparées pour éviter les failles d'injection sql
$sql = "SELECT * , QtePiece * PrixUnitairePiece AS Total
FROM suivi_piece_intervention
Inner join article on suivi_piece_intervention.RefPiece = article.Codearticle
Where (Intervention = :inter) and (SuiviLignePiece = :suivi)";
$datas = [':inter' => $Inter , ':suivi' => "A approvisionner"];
//Execution de la requete préparée
try
{
$requete = $bdd->prepare($sql);
$requete->execute($datas);
$commandes = $requete->fetchAll(); // on stocke le résultat dans un array
} catch (Exception $e)
{
// en cas d'erreur :
echo " Erreur ! " . $e->getMessage();
echo " Les datas : ";
print_r($datas);
}
//si il y a des commandes
if (!empty($commandes))
{
//on boucle dessus
foreach ($commandes as $i => $donnees_tableau_1)
{
$ligne = $donnees_tableau_1 ['N_Ligne_Piece_Intervention'];
$Designation = $donnees_tableau_1['Designationpiece'];
$RefPiece= $donnees_tableau_1['RefPiece'];
$qte = $donnees_tableau_1['QtePiece'];
$PrixU= $donnees_tableau_1['PrixUnitairePiece'];
$PrixT = $donnees_tableau_1['Total'];
$Fournisseur = $donnees_tableau_1['Fournisseur'];
echo '<tr style="margin-top:0px;">';
//echo '<input type="text" id="num_ligne" value="'.$i.'"/>';
echo '<td class="text-center border-left border-right" style="width:16%; height:2.4em;" id="input_RefPiece_' . $i . '" >' . $RefPiece . '</td>';
echo '<td class="text-center border-left border-right" style="width:22%; height:2.4em;" id="input_designation_' . $i . '" >' . $Designation . '</td>';
echo '<td class="text-center border-left border-right" style="width:16%; height:2.4em;" id="input_Qte_' . $i . '" >' . $qte . '</td>';
if ($donnees_tableau_1['PrixUnitairePiece']>=0)
{
echo '<td class="text-center" style="width:10%" id= "input_PrixU' . $i . '"><input type="text" class="col-12 text-center" id="input_PrixU" name="modif" value="' . $PrixU . '" onchange="modif_Prix( '.$ligne.',this.value, );"/></td>';
}
else
{
echo '<td class="text-center border-left border-right" style="width:17%; height:2.4em;" id="input_Total_' . $i . '" >' . $PrixU . '</td>';
}
echo '<td class="text-center border-left border-right" style="width:17%; height:2.4em;" id="input_Total_' . $i . '" >' . $PrixT . '</td>';
if ($donnees_tableau_1['Fournisseur']>=0)
{
$requestFournisseur = $bdd->query('SELECT fournisseur1 FROM article GROUP BY fournisseur1');
$fournisseur_s= $requestFournisseur->fetchAll();
echo '<td class="text-center" style="width:16%" id= "input_fournisseur' . $i . '">
<select id="Fournisseur4" placeholder="Choisir le fournisseur" style="width:60%" onchange="modif_Fournisseur( '.$ligne.',this.value, );">
<option value="">'.$Fournisseur.'</option>';
foreach($fournisseur_s as $fournisseur_s):
{
echo '<option value ="'.$fournisseur_s['fournisseur1'].'">'.$fournisseur_s['fournisseur1'].'</option>';
}
endforeach;
echo'</select></td>$requestFournisseur->closeCursor()';
}
else
{
echo '<td class="text-center" style="width:16%; font-style: italic; color: red;" id= "ch' . $i . '">' . $Fournisseur. ' </td>';
}
echo' <td class="text-center border-left border-right" style="width:3%; height:2.4em;">
<input type="checkbox" name="valider[]" class="chkb-valider" data-row="' . $i . '" id="input_Valider_' . $i . '" value="Oui">
</td>';
}
}
?>
<script>
//on attache l'évènement CLICK sur les cases à cocher
$('.chkb-valider').click(function (){
//on récupère le numéro de ligne concernée
let ligne = $(this).data('row');
sendRowAjax(ligne);
});
function sendRowAjax(ligne) {
let input_RefPiece = $("#input_RefPiece_" + ligne).val();
let input_designation = $("#input_designation_" + ligne).val();
let input_quantite = $("#input_Qte_" + ligne).val();
let input_PrixU = $("#input_PrixU" + ligne).val();
let input_Total = $("#input_Total_" + ligne).val();
let input_Fournisseur = $("#input_fournisseur" + ligne).val();
//on construit la variable qui va contenir les données à envoyer en ajax
let datas = {RefPiece: input_RefPiece, Designation: input_designation, qte: input_quantite, PrixU: input_PrixU, PrixT: input_Total, Fournisseur: input_Fournisseur};
let urlFichierAjx = "tableau_stock.php"; // a adapter selon tes besoin
//on envoi les données en AJAX au format JSON en POST
$.ajax({
type: "POST",
url: urlFichierAjx,
data: datas,
dataType: "json"
}).done(function (reponse) {
console.log('REPONSE OK AJAX', response);
}).fail(function (jqXHR, textStatus) {
console.log('ERREUR AJAX', jqXHR, textStatus);
});
}
</script>
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
Modifié le 16 juin 2022 à 10:27
Modifié le 16 juin 2022 à 10:27
a moins que j'ai oublié un de modifié qqc car la je la comprends pas l'erreur
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
4 741
>
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
Modifié le 16 juin 2022 à 11:23
Modifié le 16 juin 2022 à 11:23
Déjà, merci de préciser le LANGAGE dans les balises de code
Explications disponibles ici :
https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources
Ensuite,
Quel est le code du fichier tableau_stock.php ? ( a noter qu'il doit s'agir d'un fichier à part.. et non du fichier qui contient le html et le js que tu nous montres ! )
Et enfin,
Pour débuguer correctement de l'ajax, je t'invite à utiliser la console du navigateur firefox ( et à bien y activer le debug du XHR )

Tu pourras ensuite déplier la ligne qui correspond ton appel ajax
et regarder dans l'onglet "requete" ce qui a été envoyé
dans l'onglet "reponse" .. la réponse (et/ou les erreurs) retournées par ton script php
Explications disponibles ici :
https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources
Ensuite,
Quel est le code du fichier tableau_stock.php ? ( a noter qu'il doit s'agir d'un fichier à part.. et non du fichier qui contient le html et le js que tu nous montres ! )
Et enfin,
Pour débuguer correctement de l'ajax, je t'invite à utiliser la console du navigateur firefox ( et à bien y activer le debug du XHR )

Tu pourras ensuite déplier la ligne qui correspond ton appel ajax
et regarder dans l'onglet "requete" ce qui a été envoyé
dans l'onglet "reponse" .. la réponse (et/ou les erreurs) retournées par ton script php
kyller_4432
Messages postés
45
Date d'inscription
mardi 14 juin 2022
Statut
Membre
Dernière intervention
21 juin 2023
>
jordane45
Messages postés
38465
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2025
17 juin 2022 à 08:25
17 juin 2022 à 08:25
C'est bon j'ai réussi a faire comme je le souhaitais encore merxi
14 juin 2022 à 13:17
14 juin 2022 à 13:21
Quel rapport avec le code php que tu nous montres ?
Modifié le 14 juin 2022 à 13:26
document.getElementById("input_Valider").checked = true;
}
pour le moment j'ai que sa. Le code php que je montre est la ou je coche mes checkbox pour pouvoir les recuperer apres
14 juin 2022 à 14:14
Ensuite.. tu postes ta question dans le forum PHP ... si c'est pour faire du JS .. il aurait fallu la poster dans le forum javascript..
Et enfin.. pourquoi vouloir passer par du javascript ?
Pourquoi ne pas faire, comme je te l'ai déjà suggéré à plusieurs reprises.., un FORMULAIRE ?
14 juin 2022 à 14:16