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   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > kyller_4432 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > kyller_4432 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
mon maitre de stage veut que je passe par du javascript
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > kyller_4432 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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   Statut Membre Dernière intervention   > kyller_4432 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
quand je fais avec votre code je tombe a chaque fois sur erreur ajax
0
kyller_4432 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
a moins que j'ai oublié un de modifié qqc car la je la comprends pas l'erreur
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > kyller_4432 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
C'est bon j'ai réussi a faire comme je le souhaitais encore merxi
0