Récuperer une ligne d'un tableau avec une checkbox
Résolu
kyller_4432
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
kyller_4432 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
kyller_4432 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'aimerais savoir si il est posible de récupérer une ligne d'un tableau en java
<?php //session_start(); include ("connect_mysql.php"); //if(isset($_REQUEST['block'])){$block = $_REQUEST['block'];}else{$block='none';} $Inter = $_GET['Inter']; $Quantite =array(); $RefPiece = array(); $PrixU = array(); $Fournisseur = array(); $i=0; $commande = $bdd->query("SELECT * , QtePiece * PrixUnitairePiece AS Total FROM suivi_piece_intervention Inner join article on suivi_piece_intervention.RefPiece = article.Codearticle Where (Intervention = '$Inter')"); while ($donnees_tableau_1 = $commande-> fetch()) { $i++; $Designation[$i] =$donnees_tableau_1 ['Designationpiece']; $RefPiece[$i] = $donnees_tableau_1['RefPiece']; $qte[$i]= $donnees_tableau_1['QtePiece']; $PrixU[$i]=$donnees_tableau_1['PrixUnitairePiece']; $PrixT[$i]= $donnees_tableau_1 ['Total']; $Fournisseur[$i] = $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" >' . $RefPiece[$i] . '</td>'; echo '<td class="text-center border-left border-right" style="width:22%; height:2.4em;" id="input_designation" >' . $Designation[$i] . '</td>'; echo '<td class="text-center border-left border-right" style="width:16%; height:2.4em;" id="input_Qte" >' . $qte[$i] . '</td>'; echo '<td class="text-center border-left border-right" style="width:16%; height:2.4em;" id="input_prix" >' . $PrixU[$i] . '</td>'; echo '<td class="text-center border-left border-right" style="width:17%; height:2.4em;" id="input_Total" >' . $PrixT[$i] . '</td>'; echo '<td class="text-center border-left border-right" style="width:10%; height:2.4em;" id="input_fournisseur" >' . $Fournisseur[$i] . '</td>'; echo' <td class="text-center border-left border-right" style="width:3%; height:2.4em;"> <input type="checkbox" name="valider[]" id="input_Valider" value="Oui"></input></td>'; } ?>
A voir également:
- Récuperer une ligne d'un tableau avec une checkbox
- Tableau word - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
3 réponses
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
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 !
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>
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
Quel rapport avec le code php que tu nous montres ?
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
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 ?