Partage
  • Partager sur Facebook
  • Partager sur Twitter

faire une insertion multiple simultanement php

ajax php poo

Sujet résolu
    17 septembre 2020 à 16:24:54

    Bonjour,
    Voila je rencontre un petit problème avec mon code.
    j'ai suivi un tutorial sur la programmation orrienté objet 
    je souhaite faire plusieurs enregistrement simultanément pour cela j'ai faire un tableau dynamique avec jquery qui appel des lignes à volonté 
    et pour enrigistrer les chaque valeur des différents ligne du tableau j'utilise ajax qui doit faire appel à ma fonction qui se trouve dans mon controller 
    Décrivez ici votre code ou ce que vous cherchez à faire
    ``````````````````````````````````````
    voici le code pour ma class missioncontroller
    class MissionController extends AppController
    {
        public function __construct()
        {
            parent::__construct();
            $this->loadModel('mission');
            $this->loadModel('objet_mission');
            $this->loadModel('commune');
            $this->loadModel('vehicule');
            $this->loadModel('ressource');
            $this->loadModel('consommation');
            $this->loadModel('quartier');
            $this->loadModel('intervention');
            $this->loadModel('diver');
            $this->loadModel('itineraire');
        }
     public function new(){
            $communes_interieur=$this->commune->extractinterieur('id','nom');
            $communes_abidjan=$this->commune->extractabidjan('id','nom');
            $quartiers=$this->quartier->getAll();
            $quartiersbyCommune=array();
            foreach ($quartiers as $quartier){
                $quartiersbyCommune[$quartier->commune_id][$quartier->id]=$quartier->nom;
            }
            if (!empty($_POST) and !empty($_POST['debut']) and !empty($_POST['fin']) and !empty($_POST['objet']) and !empty($_POST['debut']) and !empty($_POST['commune_depart']) and !empty($_POST['commune_arrive']) and isset($_POST)) {
                $result1 = $this->objet_missions->insert([
                    'objet' => $_POST['objet'],
                    'isabidjan' => $_POST['isabidjan'],
                ]);
                if ($result1 ) {
                    if(!empty($_POST)) {
                        $result2 = $this->mission->insert([
                            'debut'=>$_POST['debut'],
                            'fin'=>$_POST['fin'],
                        ]);
                        if($result2){
                            if(isset($_POST['commune_depart'])){
                                if(!empty($_POST)){
                                    for ($count=0;$count<count($commune_depart=$_POST['commune_depart']);$count++){
                                        $result3=$this->itineraire->insert([
                                            'depart'=> $_POST['commune_depart'][$count],
                                            'arrivee'=>$_POST['commune_arrive'][$count],
                                            'km'=>$_POST['km'][$count],
                                            'carburant'=>$_POST['carburant'][$count],
                                            'cout'=>$_POST['cout'][$count],
                                            'site'=>$_POST['site'][$count],
                                        ]);
                                    }
                                }
                            }
                            if($result3){
                                return $this->ressource();
                            }
                            else {
                            }
                        }
                    }
                }
            }
            $form = new BootstrapForm($_POST);
            $this->render('missions.add.new',compact('form','communes_abidjan','communes_interieur','quartiersbyCommune'));
        }
      }
    ````````````````````````````````
    voici ma vue avec je code JQUERY
    <form  id="containerform0" method="post" class=" shadow shadow-lg">
        <div class="card-header">
            <div class="d-inline"> <?=$form->inputRadio('isabidjan','1','Abidjan','','isabidjan');?></div>
            <div class="d-inline"> <?=$form->inputRadio('isabidjan','0','Interieur','','isabidjan');?></div>
            <div class="d-lg-inline "> <?= $form->input('textarea','objet','Objet','input-group-text objet','','');?></div>
        </div>
    </form>
    <div>
        <div id="formulaire">
            <div id="containerform1" class="form">
        <form  id="form1" method="post" class=" shadow shadow-lg ">
        <h1 class="h1 h1-responsive align-content-center">Ajouter les references de la mission</h1>
            <div class="container-fluid" >
            <table class="table mt-3 " >
                <thead class="table-dark">
                <th>Date Debut</th>
                <th>Date de Fin</th>
                </thead>
                    <tbody>
                    <tr >
                        <td><?= $form->input('date','debut','','input-group-text','','');?></td>
                       <td> <?= $form->input('date','fin','','input-group-text','','');?></td>
                    </tr>
                    </tbody>
            </table>
            </div>
        <div class="container-fluid " >
                <table class="table mt-3" id="crud-table">
                    <thead>
                        <th><h3 class="h3-responsive">Itineraires</h3></th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th><div align="right"><button id="add" class="btn btn-success ">+</button></div></th>
                    </thead>
                <thead class="table-dark">
                <th>Depart</th>
                <th>Arrivée</th>
                <th>Km</th>
                <th>Carburant</th>
                <th>Coût</th>
                <th>Site</th
                </thead>
                    <tbody>
                    <tr>
                        <td><div><?= $form->select('commune_depart','',$communes_interieur,'','depart','depart');?></div></td>
                        <td><div><?= $form->select('commune_arrive','',$communes_interieur,'','arrivee','arrivee');?></div></td>
                       <td><div><?= $form->input('text','km','','input-group-text km','','');?></div> </td>
                       <td><div><?= $form->input('text','carburant','','input-group-text carburant','','');?></div> </td>
                        <td><div><?= $form->input('text','cout','','input-group-text cout','','');?></div> </td>
                        <td><div><?= $form->input('text','site','','input-group-text site','','');?></div> </td>
                    </tr>
                    </tbody>
            </table>
            </div>
        </form>
            <div  align="center">
                <?= $form->button('submit','SUIVANT','next'); var_dump($_POST);?>
            </div>
            </div>
            <div id="containerform2" class="form">
        <form method="post" enctype="multipart/form-data"  id="form2" class=" shadow shadow-lg ">
            <h1 class="h1 h1-responsive align-content-center ">Ajouter les references de la mission</h1>
            <div class="container-fluid" >
                <table class="table mt-3 "  >
                    <thead class="table-dark">
                    <tr>
                    <th>Commune</th>
                    <th>Quartier</th>
                    <th>Client ou Site</th>
                    </tr>
                    </thead>
                    <tbody>
                    <tr>
                        <td><div><?= $form->select('commune','',$communes_abidjan,'commune','commune');?></div></td>
                        <td id="quartier">
                            <?php foreach ($quartiersbyCommune as $commune_id=>$quartiers):?>
                            <div class="step2" id="commune-<?=$commune_id;?>"><?= $form->select('quartier','',$quartiers);?></div>
                         <?php endforeach;?>
                        </td>
                        <td ><div><?= $form->input('text','client_site','','input-group-text','','note');?></div></td>
                    </tr>
                    </tbody>
                </table>
            </div>
        </form>
            <div  align="center">
                <?= $form->button('submit','SUIVANT','next1');?>
            </div>
                <?=var_dump($_POST);?>
        </div>
       </div>
    </div>
    <script>
        $(document).ready(function () {
            var count =1;
            //affiche et cache le formulaire
        var formulaire={}
        $('.form').each(function () {
        var form=$(this);
        formulaire[form.attr('id')]=form
            form.remove();
        });
        $('input[type=radio][name=isabidjan]').change(function () {
            $('#formulaire').ready(function () {
                var quartiers={};
                $('.step2').each(function () {
                    var div=$(this);
                    quartiers[div.attr('id')]=div
                    div.remove();
                });
                $(document).on('change','#commune',function () {
                    var commune_id= $(this).val();
                    if(commune_id==0){
                        $('.step2').hide();
                    }else{
                        $('.step2').show();
                        $('#quartier').empty().append(quartiers['commune-'+commune_id]);
                    }
                });
      //ajout des lignes au tableau
                $("#add").click(function () {
                    event.preventDefault();
                    var count= count+1
                    var html="<tr id='row"+count+"'>";
                    html+='<td><div><?= $form->select("commune_depart","",$communes_interieur,"","depart","depart");?></div></td>';
                    html+='<td><div><?= $form->select('commune_arrive','',$communes_interieur,'','arrivee','arrivee');?></div></td>';
                    html+='<td><div><?= $form->input('text','km','','input-group-text km','','');?></div></td>';
                    html+='<td><div><?= $form->input('text','carburant','','input-group-text carburant','','');?></div> </td>';
                    html+='<td><div><?= $form->input('text','cout','','input-group-text cout','','');?></div> </td>';
                    html+='<td><div><?= $form->input('text','site','','input-group-text site','','');?></div></td>';
                    html+="<td><button type='button'   name='remove' data-row='row"+count+"' class='btn btn-danger btn-xs remove'>"+"-</td>";
                    html+="</tr>";
                    $('#crud-table').append(html);
                });
      //pour enregistrer les differentes ligne du tableu
              $('#next').click(function () {
                    var isabidjan;
                    var objet;
                    var depart=[];
                    var arrivee=[];
                    var km=[];
                    var carburant=[];
                    var cout=[];
                    var site=[];
                    isabidjan=$('isabidjan').val();
                    objet=$('.objet').val();
                    $('.depart').each(function () {
                        depart.push($(this).val());
                    });
                    $('.arrivee').each(function () {
                            arrivee.push($(this).val());
                        });
                    $('.km').each(function () {
                            km.push($(this).val());
                        });
                    $('.carburant').each(function () {
                            carburant.push($(this).val());
                        });
                    $('.cout').each(function () {
                        cout.push($(this).val());
                    });
                    $('.site').each(function () {
                        site.push($(this).val());
                    });
                    $.ajax({
                        url:"http://gestauto:8080/index.php?p=mission.new",
                        method:"POST",
                        data:{isabidjan:isabidjan,objet:objet,depart:depart,arrivee:arrivee,km:km,carburant:carburant,cout:cout,site:site,},
                        success:function (data) {
                         console.log(data);
                        alert("enregistrer");
                        }
                    });
                    });
            });
            if($(this).val()==1){
                $('.form').show();
                $('#formulaire').empty().append(formulaire['containerform2']);
               //
            }else if($(this).val()==0){
                $('.form').show('slow');
                $('#formulaire').empty().append(formulaire['containerform1']);
            }
        });
            $(document).on('click','.remove',function(){
                var delete_row=$(this).data("row");
                $("#"+delete_row).remove();
            });
        });
    </script>
    ### Ce que je veux
    est de pouvoir faire appel à ma fonction new() de mon controller qui pourra effectuer plusieur insertion
      et aussi dans l'url ajax je voudrais savoir comment faire appel à mon controller
    ### Ce que j'obtiens
    j'obtiens riens dans ma base de donnée et dans la console js on m'affiche ce message 'No resource with given URL found'
    Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
      merci
    • Partager sur Facebook
    • Partager sur Twitter

    faire une insertion multiple simultanement php

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown