Bonjour,
Voila je rencontre un petit problème avec mon code.
j'ai suivi le tutorial sur la programmation orrienté objet de grafikart
je souhaite faire plusieur enregistrement simultanement pour cela j'ai faire un tableau dynamique avec jquery qui appel des lignes à volonté et pour enrigistrer les chaque valeur des differents ligne du tableau j'utilise ajax qui doit faire appel à ma fonction qui se trouve dans mon controller.
il y a une fonction new dans mon controller qui me retourne une vue avec un formulaire ou je peux il ya mon tableau dynamique
<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]);
}
});
$("#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);
});
$('#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:"insert.php",
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>
namespace Gestauto\App\Controller;
use \App;
use Gestauto\Core\HTML\BootstrapForm;
class MissionController extends AppController
{
public $lastinsertid;
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'));
}
}
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
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'
merci