Remplir une variable tableau en php

bibine125 Messages postés 15 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 12 juillet 2005 - 7 juil. 2005 à 13:03
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 8 juil. 2005 à 12:06
salut à tous j'ai un problème.

je n'arrive pas à remplir une variable tableau . le tableau est
rempli à l'aide de valeur qui sont sélectionné dans une liste
déroulante sur un "OnChange". j'aimerai qu'a chaque fois que je clique
sur un élément de cette liste la valeur de cette liste remplisse le
tableau au fur et à mesure, ensuite j'aimerai récupérer ce tableau dans
une autre page.



voici le code:



echo'<tr>';

$i=0;

$j=0;

while(mysql_field_name($result_chp,$i))

{

//$_POST['ordre'] correspond à la valeur de cette liste

//$tab est le tableau


if(mysql_field_name($result_chp,$i)==$_POST['ordre'])

{




echo'<td>';echo
$_POST['ordre'];

$j++;

$tab[$j] = $_POST['ordre'];

for($p=0;$p<count($tab);$p++)

{

echo $p;

echo $tab[$p];

}



include('critere.php');



echo'</td>';



}

$i++;

}



echo'</tr>';

10 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juil. 2005 à 13:42
hello,



et ou est le probleme au juste ?

Au passage, on evite de mettre un count () dans une boucle for ().

$pt = count ($tab);

for ($i = 0; $i < $cpt; $i ++) {}
0
bibine125 Messages postés 15 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 12 juillet 2005
7 juil. 2005 à 14:47
lorsque j'affiche le tableau il ne me sort que la valeur que j'ai
cliqué et pas les autre valeurs que j'ai cliqué précédemment. c'est
comme si j'écrasai la dernière valeur. au bout du compte je n'ai
toujours qu'une seule valeur dans mon tableau, alors que j'aimerai
avoir toutes celles dont g cliqué dessus auparavant.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juil. 2005 à 15:04
Ca c'est normal.
Que tu mettes ton formulaire et ce code sur la meme page, ou sur 2 pages differentes, ton onchange soumet ton formulaire (non?). Donc, il raffraichit la page. Donc, toutes les variables NON PASSEES en post a la page suivante (ou a elle-meme donc) disparaissent.

Si tu veux garder ce tableau, il faut que tu le mettes dans ton formulaire.

Bon un exemple a 2 balles, pas tres pousse, et qui peut poser un ou deux problemes, mais facilement resolvalbles :

<?php
$chaineTab = '';


if (isset ($_POST['submit']) && $_POST['submit'] === 'ok') {
if (isset ($_POST['test']) && !empty ($_POST['test'])) {
if (isset ($_POST['tab']) && !empty ($_POST['tab'])) {
$tab = unserialize (base64_decode ($_POST['tab']));
if (is_array ($tab)) {
foreach ($tab as $valeur) {
echo $valeur, '
';
}
}
}
$tab[] = $_POST['test'];
$chaineTab = base64_encode (serialize ($tab));
}
}


?>
<form action="?" method="post">

" />

</form>
0
bibine125 Messages postés 15 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 12 juillet 2005
8 juil. 2005 à 10:20
maintenant j'ai un autre problème:

j'aimerai supprimer la ligne que j'ai crée en validant avec le bouton del.

j'ai crée une fonction qui crée une ligne en fonctin du nom de la iste
déroulante. dès que j'ai cliqué sur un objet de cette liste, cette
fonction m'affiche une ligne avec : le nom de l'objet, une liste
déroulante d'opérateur , un champ texte, et un bouton supprimer
('del'). lorsque je clique sur ce bouton j'aimerai que la ligne en
question s'efface et non toute les lignes.

voici le code:



//connexion a la base

include('connect_mysql_db.inc');

include('function.php');



//requete d'affichage des atttributs

$sql_chp ="SELECT *FROM `radacct`";



//exécution de la requete

$result_chp=mysql_query($sql_chp) or die('Erreur execution de la requete req_chp
');



?>



<script language="JavaScript">

<!--

function test(champ)

{

if(champ.selectedIndex>0)

form2.submit()

}



//-->

</script>









<?

//*****************************************************************************************



$chaineTab = '';

//partie ou je voudrai supprimer la ligne de l'objet



if (isset ($_POST['del']) && $_POST['del'] == 'del')

{

if (isset ($_POST['test']) && !empty ($_POST['test']))

{

if (isset ($_POST['tab']) && !empty ($_POST['tab']))

{

$tab = unserialize (base64_decode ($_POST['tab']));

if (is_array ($tab))

{

echo'';

foreach ($tab as $valeur)

{

CreateLine($valeur);

}

echo'
';





}

}

$_POST['test']='';

$tab[] = $_POST['test'];

$chaineTab = base64_encode (serialize ($tab));

}

}

//***********************************

//là je valide l'option que j'ai sélectionnée pour l'afficher

if (isset ($_POST['submit']) && $_POST['submit'] == 'ok')

{

if (isset ($_POST['test']) && !empty ($_POST['test']))

{

if (isset ($_POST['tab']) && !empty ($_POST['tab']))

{

$tab = unserialize (base64_decode ($_POST['tab']));

if (is_array ($tab))

{

echo'';

foreach ($tab as $valeur)

{

CreateLine($valeur);

}

echo'
';





}

}

$tab[] = $_POST['test'];

$chaineTab = base64_encode (serialize ($tab));

}

}





?>



<form action="?" method="post">

<select name="test" >

<option value=" ">Aucun</option>

<? $i=0;

while(mysql_field_name($result_chp,$i))

{

//affichage des champs

echo'<option';





for($k=0;$k<count($_POST["test"]);$k++)

{


if(mysql_field_name($result_chp,$i)==
$_POST["test"][$k])

{

echo "SELECTED";

break;

}

}





echo'>'.mysql_field_name($result_chp,$i).'</option>';

$i++;

}?>

</select>

" />



</form>



voici ce que j'obtiens:



<label>ConnectInfo_start
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctStartTime
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>RadAcctId
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctSessionId
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctTerminateCause
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctStartDelay
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,



<form action="?" method="post"><select name="test"><option value=" " selected="selected">Aucun</option><option>RadAcctId</option><option>AcctSessionId</option><option>AcctUniqueId</option><option>UserName</option><option>Realm</option><option>NASIPAddress</option><option>NASPortId</option><option>NASPortType</option><option>AcctStartTime</option><option>AcctStopTime</option><option>AcctSessionTime</option><option>AcctAuthentic</option><option>ConnectInfo_start</option><option>ConnectInfo_stop</option><option>AcctInputOctets</option><option>AcctOutputOctets</option><option>CalledStationId</option><option>CallingStationId</option><option>AcctTerminateCause</option><option>ServiceType</option><option>FramedProtocol</option><option>FramedIPAddress</option><option>AcctStartDelay</option><option>AcctStopDelay</option></select>



maintenant j'aimerai supprimer la ligne mais le bouton 'del' ne marche pas.





</form>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bibine125 Messages postés 15 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 12 juillet 2005
8 juil. 2005 à 10:21
<label>ConnectInfo_start
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctStartTime
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>RadAcctId
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctSessionId
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctTerminateCause
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>AcctStartDelay
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,



<form action="?" method="post"><select name="test"><option value=" " selected="selected">Aucun</option><option>RadAcctId</option><option>AcctSessionId</option><option>AcctUniqueId</option><option>UserName</option><option>Realm</option><option>NASIPAddress</option><option>NASPortId</option><option>NASPortType</option><option>AcctStartTime</option><option>AcctStopTime</option><option>AcctSessionTime</option><option>AcctAuthentic</option><option>ConnectInfo_start</option><option>ConnectInfo_stop</option><option>AcctInputOctets</option><option>AcctOutputOctets</option><option>CalledStationId</option><option>CallingStationId</option><option>AcctTerminateCause</option><option>ServiceType</option><option>FramedProtocol</option><option>FramedIPAddress</option><option>AcctStartDelay</option><option>AcctStopDelay</option></select> </form>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 juil. 2005 à 10:25
ben il est ou ton bouton del...?De toutes facons, ce sera un bouton submit s'appelant del. Et lors des tests, si submit del tu effaces, si submit autre chose...tu fais autre chose.
0
bibine125 Messages postés 15 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 12 juillet 2005
8 juil. 2005 à 11:12
je n'arrive pas à l'afficher dans la copie d'écran. pourtant il est bien la , je le vois dans mon navigateur.

maintenant comment effacer la ligne en question si j'appuie sur
le bouton del? (le bouton del est bien de type submit). Faut il que je
supprime l'option du tableau et que je réaffiche le tableau après? le
problème c'est que lorsque je supprime la ligne je n'ai pas envie que
toutes les autres ligne s'éfface. En effet j'ai voulu effacer la ligne
en mettant la valeur de l'option à null ($_POST['test']='') mais il
n'efface rien
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 juil. 2005 à 11:16
Tu as tes lignes dans le tableau, non ? Donc tu supprimes juste l'entree correspondante a la ligne choisie dans ton tableau.
array_splice () ou array_slice ()
0
bibine125 Messages postés 15 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 12 juillet 2005
8 juil. 2005 à 11:46
je ne connais pas le numéro de la ligne choisi car le bouton del ne
fait pas référence au numéro de ligne. Il faudrait que je récupère le
numéro de la ligne avant de vouloir supprimer dans le tableau à l'aide
de array_splice (int array, int offset)comment faire?

,
Rapport général des
accounting





<fieldset><legend>Les critères</legend>
<label>ServiceType
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,
,
----

<label>ServiceType
</label>,
<select name="operator"><option value="=" selected="selected">=</option><option value="<"><</option><option value=">">></option><option value="<="><=</option><option value=">=">>=</option><option value="~">~</option><option value="like">like</option><option value="~*">~*</option><option value="~~*">~~*</option><option value="<<="><<=</option><option value="regexp">regexp</option></select>,
,

</fieldset>

<form action="?" method="post">

<fieldset><legend>Critères</legend>
<select name="test"><option value=" " selected="selected">Aucun</option><option>RadAcctId</option><option>AcctSessionId</option><option>AcctUniqueId</option><option>UserName</option><option>Realm</option><option>NASIPAddress</option><option>NASPortId</option><option>NASPortType</option><option>AcctStartTime</option><option>AcctStopTime</option><option>AcctSessionTime</option><option>AcctAuthentic</option><option>ConnectInfo_start</option><option>ConnectInfo_stop</option><option>AcctInputOctets</option><option>AcctOutputOctets</option><option>CalledStationId</option><option>CallingStationId</option><option>AcctTerminateCause</option><option>ServiceType</option><option>FramedProtocol</option><option>FramedIPAddress</option><option>AcctStartDelay</option><option>AcctStopDelay</option></select>
</fieldset>
</form></td></tr></tbody>
</table>

voila ce ke j'ai
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 juil. 2005 à 12:06
Hmmm, tu ne connais pas la clef correspondant a ta valeur dans le tableau, non...mais tu as la valeur! Donc tu peux trouver le clef... ;-)
http://de.php.net/manual/en/function.array-search.php
0