Merci de votre réponse, si je vous mets mon code entier est ce que vous verrez plus clair sur ce qu'il fait ?
Car je n'ai qu'un seul formulaire sur ma page principal, et toutes mes variables sont dans le formulaire.
<!-- PROGRAMME POUR TITI 14/04/2015-->
<?php
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Programme développer par afin de pouvoir réemettre des messages en mode Stream et Batch a l'application qu'il désire //
// 12 Janvier 2015 //
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
include( "../include/infirst.inc" );
include( "../include/myfuncts.inc" );
include( "../include/my_sgbd.inc" );
include_once("function.php");
?>
<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=9">
<meta name='Author' content=''>
<meta http-equiv="refresh" content="S" URL=http://helsinki/HERMES/TEST/pages/menu.php">
<title>Réémission</title>
<link rel="stylesheet" href="../styles/css.css" />
<script language='JavaScript' type='text/javascript' src='../include/javascript.js'></script>
</head>
<body>
<div id="wrapper">
<div class="banniere"></div>
<section>
<h1><strong> Réémission des Messages </strong></h1>
<p class="message">HERMES</p>
<form method='post' id='Application' action='<?php echo $_SERVER["PHP_SELF"]; ?> '>
<fieldset>
<legend>Réemission des messages</legend>
<label for="MODE_REEMIS">Choisir un mode de réemission : BATCH (réemission différé) ou STREAM (réemission fil de l'eau : maximum 20 numéros)</label><br/>
<?php
// Déclarations des variables
$appli = $_POST['abonne'];
$TYPE_MSG = $_POST['TYPE_MSG'];
$FORMAT_MSG = $_POST['FORMAT_MSG'];
$MODE_REEMIS = $_POST['MODE_REEMIS'];
$ETAT_REEMIS = $_POST['ETAT_REEMIS'];
$appli = $_POST['abonne'];
$hl7_IMS_ABONNE = $_POST['hl7_IMS_ABONNE'];
/* --------------------------------------------------- Condition pour le Mode de Réémission -----------------------------------------------*/
$MODE_REEMIS = $_POST['MODE_REEMIS'];
$ETAT_REEMIS = $_POST['ETAT_REEMIS'];
// cacher le warning !
error_reporting(0);
?>
<!-- LISTE DEROULANTE POUR LE MODE REEMIS -->
<select name='MODE_REEMIS' id='MODE_REEMIS' onchange='submit()'>
<?php
if($MODE_REEMIS == '')
{
echo " <option selected ='selected' value=''> </option>";
}
else {
echo " <option value=''> </option>";
}
if($MODE_REEMIS == 'STREAM')
{
echo "<option selected ='selected' value='STREAM'>STREAM</option>";
}
else {
echo "<option value='STREAM'>STREAM</option>";
}
if($MODE_REEMIS == 'BATCH')
{
echo "<option selected='selected' value='BATCH'>BATCH</option>";
header('Location: menuBatch.php');
}
else {
echo "<option value='BATCH'>BATCH</option>";
}
?>
</select><br/>
<?php
if($MODE_REEMIS == 'STREAM')
{
$ETAT_REEMIS = 'A';
}else{
$ETAT_REEMIS = 'A';
}
/* ------------------------------------------------- Condition pour les abonnees destinataires --------------------------------------------*/
?>
<!-- LISTE DEROULANTE POUR LES APPLICATIONS -->
<label for="abonne">Sélectionner l'application destinataire de la réémission :</label><br/>
<select id='abonne' name='abonne' onchange='submit()'>
<?php
$requete = 'SELECT RECEIVING_APPLICATION FROM hl7_IMS_ABONNE order by 1' ;
$res= exec_select( 'ORACLE8', 'TITI', $requete,'', $trace=true );
for($i=0 ; $i < sizeof($res); $i++)
{
$resultat=($res[$i]['RECEIVING_APPLICATION']);
if($resultat == $appli)
{
echo " <option selected ='selected' value='".$resultat."'>".$resultat."</option>";
}
else
{
echo " <option value='".$resultat."'>".$resultat."</option>";
}
}
/*if($appli == 'HL7IDEOLOC')
{
echo"<script>alert(\"Vous venez de sélectionner l'application IDEOMED les messages seront donc effacés avant d'être rejoués\")</script>";
//echo '<script type="text/javascript">window.alert("\Vous venez de sélectionner l application IDEOMED, les messages seront donc éffacés avant d être rejoués\");</script>';
}
*/
?>
</select><br/>
<?php
// RECAPITULATIF DE L'ABONNE SUR LE QUEL NOUS ALLONS REEMETTRE
if (isset( $appli)) {
echo "<p>Vous avez sélectionné l'application : " . $appli . "</p> ";
}
$requete1 = 'SELECT DISTINCT TYPE_MSG FROM hl7_IMS_REEMIS order by 1' ;
$res1= exec_select( 'ORACLE8', 'TITI', $requete1,'', $trace=true );
?>
<label for="TYPE_MSG"> Sélectionner le type de message ou collection(MSG ou LST) à réémettre : </label><br/>
<!-- LISTE DEROULANTE POUR LE TYPES DE MESSAGES A REJOUER -->
<select id='TYPE_MSG' name='TYPE_MSG' onchange='submit()'>
<?php for($i=0 ; $i < sizeof($res1); $i++)
{
$resultat1=($res1[$i]['TYPE_MSG']);
if($resultat1 == $TYPE_MSG)
{
echo " <option selected ='selected' value='".$resultat1."'>".$resultat1."</option>";
}
else
{
echo " <option value='".$resultat1."'>".$resultat1."</option>";
}
}
?>
</select><br/>
<!-- RECAPITULATIF DU TYPE DE MESSAGE SUR LE QUEL NOUS ALLONS REEMETTRE -->
<?php
if (isset( $TYPE_MSG))
{
echo "<p>La valeur que vous avez séctionnée est : " . $TYPE_MSG . "</p> ";
}
/* --------------------------------------------------------- Condition pour le MSG --------------------------------------------------------*/
if($TYPE_MSG == 'MSG')
{
// LISTE DEROULANTE POUR LE FORMATS DE MESSAGES
echo " <select name='FORMAT_MSG' id='FORMAT_MSG' onchange='submit()'>";
if($FORMAT_MSG == '')
{
echo " <option selected ='selected' value=''> </option>";
}
else {
echo " <option value=''> </option>";
}
if($FORMAT_MSG == 'M1')
{
echo " <option selected ='selected' value='M1'>M1</option>";
}
else {
echo " <option value='M1'>M1</option>";
}
if($FORMAT_MSG == 'M2')
{
echo " <option selected ='selected' value='M2'>M2</option>";
}
else {
echo " <option value='M2'>M2</option>";
}
if($FORMAT_MSG == 'M6')
{
echo " <option selected ='selected' value='M6'>M6</option>";
}
else {
echo " <option value='M6'>M6</option>";
}
if($FORMAT_MSG == 'M8')
{
echo " <option selected ='selected' value='M8'>M8</option>";
}
else {
echo " <option value='M8'>M8</option>";
}
if($FORMAT_MSG == 'M9')
{
echo " <option selected ='selected' value='M9'>M9</option>";
}
else {
echo " <option value='M9'>M9</option>";
}
echo" </select>";
$FORMAT_MSG = $_POST['FORMAT_MSG'];
echo "<br/>";
if($FORMAT_MSG == 'M1')
{
if (isset($_POST['NIP']))
{
$NIP=$_POST['NIP'];
}else
{
$NIP = '';
}
echo " <p>Saisir le ou les NIP séparés par un espace ou un retour chariot : </p>";
echo "<textarea id='NIP' name='NIP' rows='3' cols = '50'>";
echo $NIP;
echo "</textarea>";
$ReemissionOk=$_POST['ReemissionOk'];
// boolean à TRUE par défaut
$ReemissionOk=FALSE;
// Recuperation de la liste des numéro de patients
$listNumPatient = preg_split('/[\s]+/', trim($NIP));
$k = 1;
// Taille defaut des numero de patient
$lenghtNumPatient = 12;
// Pour chaque numero de patient
for($y = 0; $y < sizeof($listNumPatient); $y++)
{
// On verifie si il est nulle
if($listNumPatient[$y] == "")
{
// Si il est null, on le retire du tableau
unset($listNumPatient[$y]);
}
}
// Des qu'on a retirer les vides, on remet en ordre les values du tableau
$listNumPatient = array_values($listNumPatient);
// On crée un tableau d'erreur vide
$listErrorNumPatient = array();
// Pour chaque numero de patient
foreach ($listNumPatient as $numPatient)
{
// On verifie qu'il soit pas vide
if ($numPatient != '')
{
// Si il est pas vide, on fait la verfi_nip sur le numero de patient en cours dans la boucle, la fonction renvoi TRUE ou FALSE
$verif_nip = verif_nip($numPatient);
// Si la fonction renvoi FALSE
if (!$verif_nip)
{
// Il y a une erreur dans le numero, on l'affiche et on note le numero eronné dans le tableau d'erreur
echo '<p>Le numéro de dossier "' . $numPatient . '" est incorrect</p>';
$listErrorNumPatient[] = $numPatient;
}else
{
//Sinon si le numero de patient est un numérique (type INT)
if(is_numeric($numPatient))
{
// Et qu'il n'est pas vide
if($numPatient != '' )
{
// On incrémente $k et on dit que la réémission est toujours faisable
$k++;
// on le met à true que si tu insères une ligne correctement !
$ReemissionOk=TRUE;
}
}else
{
// Sinon on a une erreur et on affiche a l'utilisateur que le numero de patient ne contient pas que des chiffres et on notifie l'erreur dans le tableau d'erreur !
echo '<p>Le numéro d identifiant patient"' . $numPatient . '" ne contient pas que des chiffres </p>';
$listErrorNumPatient[] = $numPatient;
}
}
}
}
// à l'exterieur du foreach (Rajouter le 25/03/2015)
if(!empty($_POST['NIP']))
{
// Si le $_POST['NIP'] est remplis
if (sizeof($listErrorNumPatient) == 0 && sizeof($listNumPatient) > 0)
{
// Si le tableau d'erreur est vide et que les numero de patient sont remplit
foreach ($listNumPatient as $numPatient)
{
// Pour chaque numero de patient, on l'insert en base et on dit que la mise a jour a été faite!
$requeteInsert = " Insert into TOTO (SEQ, ABONNE, TYPE_MSG, FORMAT_MSG, NDA, NIP, DATE_REEMIS, ETAT_REEMIS, MODE_REEMIS)";
$requeteInsert .= " Values (HL7_REEMIS_SEQUENCE.NEXTVAL, '".$appli."', '".$TYPE_MSG."', '".$FORMAT_MSG."','0' ,'".$numPatient."', TO_DATE('31/12/2099 23:59:59', 'dd/mm/yyyy hh24:mi:ss'), '".$ETAT_REEMIS."', '".$MODE_REEMIS."')";
$resReq= exec_select( 'ORACLE8', 'TITI', $requeteInsert,'', $trace=true );
}
echo "<br/><br/>Votre réémission à bien été prise en compte !<br/>";
}else
{
// Sinon c'est qu'aucune mise a jour a été faite vue qu'il y a des erreurs
echo '<p>Aucun NIP à été enregistré !</p>';
}
}
}else
{
// Si $_POST['NDA_MSG'] existe : Soumission d'un formulaire
if (isset($_POST['NDA_MSG']))
{
// On affecte la valeur du formumaire dans $NDA_MSG
$NDA_MSG=$_POST['NDA_MSG'];
}else
{
// SINON $NDA_MSG est initialisé à vide
$NDA_MSG = '';
}
echo "<p>Saisir le ou les NDA séparés par un espace ou un retour chariot :</p>";
echo "<textarea id='NDA_MSG' name='NDA_MSG' rows='3' cols = '50'>";
echo $NDA_MSG;
echo "</textarea>";
//on découpe la chaîne en fonction des espaces rencontrés (eclatement d'une chaine)
$result = preg_match('/^([0-9]{12}\s*)*$/',$NDA_MSG, $result);
//on decoupe la chaine en fonction des espaces rencontres
$listNumDossiers = preg_split('~[ \s]+~', trim($NDA_MSG));
//le dernier item est vide car la chaine se termine par un espace ce qui cree une entree
$i = 1;
$verif_all_num_dossier = TRUE;
// Pour chaque numero de patient
foreach ($listNumDossiers as $numDossier)
{
// On verifie qu'il soit pas vide
if($numDossier != '')
{
// Si il est pas vide, on fait la verif_num_dossier sur le numero de dossier en cours dans la boucle, la fonction renvoi TRUE ou FALSE
$verif_num_dossier = attribution_num_dossier($numDossier);
// Si la fonction renvoi FALSE
if(!$verif_num_dossier)
{
// Il y a une erreur dans le numero, on l'affiche
$verif_all_num_dossier = FALSE;
echo '<br/><p>Le numéro de dossier "' . $numDossier . '" est incorrect</p>';
echo '<p>Aucun NDA à été enregistré !</p>';
break;
}else
{
// On incrémente $i et on dit que la réémission est toujours faisable
$i++;
}
}else
{
// on le met à FALSE
$verif_all_num_dossier = FALSE;
break;
}
}
if($verif_all_num_dossier)
{
foreach ($listNumDossiers as $numDossier)
{
// Pour chaque numero de dossier, on l'insert en base et on dit que la mise a jour a été faite!
$requeteInsert = " Insert into TOTO (SEQ, ABONNE, TYPE_MSG, FORMAT_MSG, NDA, NIP, DATE_REEMIS, ETAT_REEMIS, MODE_REEMIS)";
$requeteInsert .= " Values (HL7_REEMIS_SEQUENCE.NEXTVAL, '".$appli."', '".$TYPE_MSG."', '".$FORMAT_MSG."', '".$numDossier."','0', TO_DATE('31/12/2099 23:59:59', 'dd/mm/yyyy hh24:mi:ss'), '".$ETAT_REEMIS."', '".$MODE_REEMIS."')";
$resReq= exec_select( 'ORACLE8', 'TITI', $requeteInsert,'', $trace=true );
}
echo '<br/><br/>Votre réémission à bien été prise en compte !<br/>';
}
}
}
/* --------------------------------------------------------- Condition pour le LST --------------------------------------------------------*/
if($TYPE_MSG == 'LST')
{
// LISTE DEROULANTE POUR LE FORMATS DE MESSAGES
echo " <select name='FORMAT_MSG' id='FORMAT_MSG' onchange='submit()'>";
if($FORMAT_MSG == '')
{
echo " <option selected ='selected' value=''> </option>";
}
else {
echo " <option value=''> </option>";
}
if($FORMAT_MSG == 'DOSP')
{
echo " <option selected ='selected' value='DOSP'>DOSP : Tous messages NIP</option>";
}
else {
echo " <option value='DOSP'>DOSP : Tous messages NIP</option>";
}
if($FORMAT_MSG == 'MDOS')
{
echo " <option selected ='selected' value='MDOS'>MDOS : Tous messages NDA</option>";
}
else {
echo " <option value='MDOS'>MDOS : Tous messages NDA</option>";
}
if($FORMAT_MSG == 'DSIT')
{
echo " <option selected ='selected' value='DSIT'>DSIT : dernière situation d'un NDA</option>";
}
else {
echo " <option value='DSIT'>DSIT : dernière situation d'un NDA</option>";
}
echo " </select>";
echo " <br />";
$FORMAT_MSG = $_POST['FORMAT_MSG'];
// (Rajouter le 25/03/2015)
$ReemissionOk=$_POST['ReemissionOk'];
$ReemissionOk=FALSE; // boolean à faux par défaut
if($FORMAT_MSG == 'DOSP')
{
// Si $_POST['NIP'] existe : Soumission d'un formulaire
if (isset($_POST['NIP']))
{
// On affecte la valeur du formumaire dans $NIP
$NIP=$_POST['NIP'];
}else
{
// SINON $NIP est initialisé à vide
$NIP = '';
}
echo "<p>Saisir le ou les NIP séparés par un espace ou un retour chariot : </p>";
echo " <textarea id='NIP' name='NIP' rows='3' cols = '50'>";
echo $NIP;
echo " </textarea>";
// Recuperation de la liste des numéro de patients
$listNumPatient = preg_split('/[\s]+/', trim($NIP));
// Pour chaque numero de patient
for($y = 0; $y < sizeof($listNumPatient); $y++)
{
// On verifie si il est nulle
if($listNumPatient[$y] == "")
{
// Si il est null, on le retire du tableau
unset($listNumPatient[$y]);
}
}
// Des qu'on a retirer les vides, on remet en ordre les values du tableau
$listNumPatient = array_values($listNumPatient);
// On crée un tableau d'erreur vide
$listErrorNumPatient = array();
$j = 1;
// Pour chaque numero de patient
foreach ($listNumPatient as $numPatient)
{
// On verifie qu'il soit pas vide
if ($numPatient != '')
{
// Si il est pas vide, on fait la verfi_nip sur le numero de patient en cours dans la boucle, la fonction renvoi TRUE ou FALSE
$verif_nip = verif_nip($numPatient);
// Si la fonction renvoi FALSE
if (!$verif_nip)
{
// Il y a une erreur dans le numero, on l'affiche et on note le numero eronné dans le tableau d'erreur
echo '<p>Le numéro d identifiant patient "' . $numPatient . '" est incorrect</p>';
$listErrorNumPatient[] = $numPatient;
}else
{
//Sinon si le numero de patient est un numérique (type INT)
if(is_numeric($numPatient))
{
// Et qu'il n'est pas vide
if($numPatient != '' )
{
// On incrémente $j et on dit que la réémission est toujours faisable
$j++;
$ReemissionOk=TRUE; // on le met à true que si tu insères une ligne correctement !
}
}else
{
// Sinon on a une erreur et on affiche a l'utilisateur que le numero de patient ne contient pas que des chiffres et on notifie l'erreur dans le tableau d'erreur !
echo '<p>Le numéro d identifiant patient"' . $numPatient . '" ne contient pas que des chiffres </p>';
$listErrorNumPatient[] = $numPatient;
}
}
}
}
if ($FORMAT_MSG == 'DOSP')
{
echo"<script>alert(\"ATTENTION, vous allez rejouer tous les dossiers du NIP que vous allez saisir !\")</script>";
}
// à l'exterieur du foreach (Rajouter le 25/03/2015)
if(!empty($_POST['NIP']))
{
// Si le $_POST['NIP'] est remplis
if (sizeof($listErrorNumPatient) == 0 && sizeof($listNumPatient) > 0)
{
// Si le tableau d'erreur est vide et que les numero de patient sont remplit
foreach ($listNumPatient as $numPatient)
{
// Pour chaque numero de patient, on l'insert en base et on dit que la mise a jour a été faite!
$requeteInsert = " Insert into TOTO (SEQ, ABONNE, TYPE_MSG, FORMAT_MSG, NDA, NIP, DATE_REEMIS, ETAT_REEMIS, MODE_REEMIS)";
$requeteInsert .= " Values (HL7_REEMIS_SEQUENCE.NEXTVAL, '".$appli."', '".$TYPE_MSG."', '".$FORMAT_MSG."','0' ,'".$numPatient."', TO_DATE('31/12/2099 23:59:59', 'dd/mm/yyyy hh24:mi:ss'), '".$ETAT_REEMIS."', '".$MODE_REEMIS."')";
$resReq= exec_select( 'ORACLE8', 'TITI', $requeteInsert,'', $trace=true );
}
echo "<br/><br/>Votre réémission à bien été prise en compte !<br/>";
}else
{
echo '<p>Aucun NIP à été enregistré !</p>';
}
}
}else
{
if (isset($_POST['NDA']))
{
$NDA=$_POST['NDA'];
}else
{
$NDA = '';
}
echo "<p> Saisir le ou les NDA séparés par un espace ou un retour chariot : </p>";
echo "<textarea id='NDA' name='NDA' rows='3' cols = '50'>";
echo $NDA;
echo "</textarea>";
$listNumDossiers = preg_split('/[\s]+/', trim($NDA));
$i = 1; // pour aider l'utilisateur à savoir quel numéro de dossier il a mal saisi
$verif_all_num_dossier = TRUE;
// Pour chaque numero de patient
foreach ($listNumDossiers as $numDossier)
{
// On verifie qu'il soit pas vide
if($numDossier != '')
{
// Si il est pas vide, on fait la verfi_nip sur le numero de patient en cours dans la boucle, la fonction renvoi TRUE ou FALSE
$verif_num_dossier = attribution_num_dossier($numDossier);
// Si la fonction renvoi FALSE
if(!$verif_num_dossier)
{
// Il y a une erreur dans le numero, on l'affiche
$verif_all_num_dossier = FALSE;
echo '<br/><p>Le numéro de dossier "' . $numDossier . '" est incorrect</p>';
echo '<p>Aucun NDA à été enregistré !</p>';
break;
}else
{
$i++;
}
}else
{
$verif_all_num_dossier = FALSE;
break;
}
}
/*echo "Le".$_POST['valid'];
//SI l'application est HL7IDEOLOC et que le TYPE de message est LST et que son format est MDOS ou Si l'application est HL7IDEOLOC et que le TYPE de message est LST et que son format est DSIT
if (($appli == 'HL7IDEOLOC' && $TYPE_MSG =='LST' && in_array('MDOS', 'DSIT',$FORMAT_MSG)) && !empty($_POST['valid']))
{
echo "Les".$_POST['valid'];
// ouvrir une POPUP pour avertir que nous sommes sur l'application IDEOMED
echo"<script>alert(\"ATTENTION, vous avez choisi de réémettre les messages pour IDEOMED : Le(s) dossier(s) seront supprimés avant la réémission des messages\")</script>";
}*/
if (($appli == 'HL7IDEOLOC' && $TYPE_MSG == 'LST' && $FORMAT_MSG=='MDOS' || $appli == 'HL7IDEOLOC' && $TYPE_MSG =='LST' && $FORMAT_MSG=='DSIT') && empty($_POST['valid']))
{
// ouvrir une POPUP pour avertir que nous sommes sur l'application IDEOMED
echo"<script>alert(\"ATTENTION, vous avez choisi de réémettre les messages pour IDEOMED : Le(s) dossier(s) seront supprimés avant la réémission des messages\")</script>";
}
// Si les numero de dossiers sont remplit
if($verif_all_num_dossier && sizeof($listNumDossiers) > 0)
{
foreach ($listNumDossiers as $numDossier)
{
if($appli == 'HL7IDEOLOC')
{
//Exécution du script pour effacer le dossier d'un patient
exec("/home/interface/dvt/html/HERMES/TEST/scripts/EFFACEDOSSIERCOMPLET.sh $numDossier");
}
// Pour chaque numero de dossier, on l'insert en base et on dit que la mise a jour a été faite!
$requeteInsert = " Insert into TOTO (SEQ, ABONNE, TYPE_MSG, FORMAT_MSG, NDA, NIP, DATE_REEMIS, ETAT_REEMIS, MODE_REEMIS)";
$requeteInsert .= " Values (HL7_REEMIS_SEQUENCE.NEXTVAL, '".$appli."', '".$TYPE_MSG."', '".$FORMAT_MSG."', '".$numDossier."','0', TO_DATE('31/12/2099 23:59:59', 'dd/mm/yyyy hh24:mi:ss'), '".$ETAT_REEMIS."', '".$MODE_REEMIS."')";
$resReq= exec_select( 'ORACLE8', 'TITI', $requeteInsert,'', $trace=true );
}
echo '<br/><br/>Votre réémission à bien été prise en compte !<br/>';
}
} // FIN du else
} // FIN du if($TYPE_MSG == 'LST')
?>
<br/>
<input id='Submit' type='Submit' class='btn' name='valid' value='Sauvegarder'/>
<a class="btn" href='<?php echo $_SERVER["PHP_SELF"]; ?>'>Réinitialiser</a>
</fieldset>
</form>
<form action="" id="myForm">
<!-- <input type="submit" class='btn' id="submitButton" value="Valider">
</form>
<script>
document.getElementById("submitButton").addEventListener("click", function (e) {
e.preventDefault();
setTimeout(function(){ document.getElementById("myForm").submit() }, 5000);
});
</script> -->
</section>
<?php
include ("PiedPage.php");
?>
</div>
</body>
</html>