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
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:

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
14 juin 2022 à 13:05
Quel rapport entre ce que tu nous montres et le langage java ?

Pourquoi as tu recréé une question ?
0
kyller_4432 Messages postés 45 Date d'inscription mardi 14 juin 2022 Statut Membre Dernière intervention 21 juin 2023
14 juin 2022 à 13:17
En gros je veux récupérer ma valeur de checkbox en java pour pouvoir ensuite la renvoyer sur une autre page php pour pouvoir passer une commande
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > kyller_4432 Messages postés 45 Date d'inscription mardi 14 juin 2022 Statut Membre Dernière intervention 21 juin 2023
14 juin 2022 à 13:21
Qu'as tu commencé à coder en java ?
Quel rapport avec le code php que tu nous montres ?
0
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
Modifié le 14 juin 2022 à 13:26
function box(){
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > kyller_4432 Messages postés 45 Date d'inscription mardi 14 juin 2022 Statut Membre Dernière intervention 21 juin 2023
14 juin 2022 à 14:14
Ah... ce n'est donc pas du JAVA .... mais du JAVASCRIPT ! ( ce sont deux langages bien différents ! )

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 ?
0
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
14 juin 2022 à 14:16
mon maitre de stage veut que je passe par du javascript
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
15 juin 2022 à 10:58
En gros
<?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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
15 juin 2022 à 16:49
Tu as mis en résolu .. donc .. c'est bon ?
... et bien...; DE RIEN alors...
0
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
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
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > 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
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 !
0
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
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
0
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
quand je fais avec votre code je tombe a chaque fois sur erreur ajax
0
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
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.

<?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>
0
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
a moins que j'ai oublié un de modifié qqc car la je la comprends pas l'erreur
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > 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
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
0
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
17 juin 2022 à 08:25
C'est bon j'ai réussi a faire comme je le souhaitais encore merxi
0