Question sur php

etaf -  
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour

peut on en php transformer une variable (ex $nom)en un tableau

.$nom.[]

Car en fait je voudrai me servir de ca pour ma fonction qui creer les cases a cocher.

(pour l'instant le code existant utilise une constante:prim[] et donc il n'y a pas de différenciation pour les différents champs).
A voir également:

7 réponses

kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Bien sur, j'en ai parler avec Luffy dernièrement dans un post, c'est ce qui est bien avec php, c'est que tu peux faire cela :

for(int i=0;i<7;i++)
  $tab[i] = "coucou";  // $tab est un tableau de 
                                         // chaine de carractère.


et plus loin :
 $tab = 5;   // $tab devien tun entier.


Donc, tu peux faire l'inveers'e, mais attention car le tableau dans l'exemple ci-dessu est alors perdu !

++
0
etaf
 
Oui mais moi ce que je veux faire c'est utiliser ce que contient $nom

Je m'explique:

Pour mon champ resultat $nom=resultat et pour mon champ alignement $nom prnedra la valeur alignement

Et si j'écrit dans ma fonction case a cocher
<input type=checkbox nom='.$nom.'[] value=.$val.>
Est ce que pour mon champs resultat
j'aurai resultat[]
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Ou, le nom sera "resultat[]", mais ce sera juste un nom, pas un tableau (d'ailleur tu l'a bien mis dans la propriété nom).

Je vois pas ton pb ?
0
etaf
 
Ben mon probleme c que ca fonctionne pas quand je fais ca...

Parcque après je traite tout ca avec une fonction pour inclure les valeurs cochées dans ma table:
et si je fais ce code ca marche pas:

if ($action == 'ajouter' || ($action == 'visualiser' && $num_enr == '')){

if ($status == "ok"){

$requete = "INSERT INTO $objet set";

foreach($champs as $cle => $valeur ){

if(($cle==Nom_Primer && $objet==resultats_analyses)||($cle==Nom_Sequence && $objet==alignements)||($cle==Nom_Tissu && $objet==resultats_analyses)){
$nom = isset($_POST['nom']) ? $_POST['nom'] : '';

foreach($nom as $val)
{
$valeur.=" $val /";
} $VLAS .=", $cle='$valeur ' ";
}
else{
$VLAS .=", $cle ='$valeur' ";
}

$VLAS=substr( $VLAS, 1);
$requete .=$VLAS;


action_simple($requete);
$action = "visualiser";


(ce code fonctionne avec le prim[] mais son probleme est que si il y a plusieurs champs de case a cocher dans un meme formulaire alors ca met le resultat sans différentiation entre les champs
0

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

Posez votre question
Luffy =) Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   110
 
... j'ai pas tout compris, mais je pense qu'il faudrait mettre un index à ton tableau, sinon.. ce n'est pas un tableau. il te faut une variable que tu incrémentes et qui te sert d'index :
$nom[$index]=...
0
etaf
 
Mais pourtant quand tu veux récuperer plusieurs valeurs de checkbox tu met dans ton code:
<input........nom=tab[] ....>

sans index dans ton tableau (en tout cas il me semble)
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Bon : Si tu veux transformer un variable en tableau faut changer de méthode :
si tu fais :
$nom."[] avec $nom qui vaut caca, tu ne va pas faire le tableau caca[] mais un chaine de caractère "caca[]".

Mais ca à la place de ce que tu as mis, si ca marche pas, c'est que l'erreur est ailleur.

<?php
echo "<input type=checkbox nom=\"".$nom."[]\" value=\"".$val."\">;
?>
0