2010-04-20 9 views
3

Je cherche essentiellement simplement imprimer chacune des valeurs autorisées dans un champ CCK ..admis liste des valeurs dans drupal CCK Les champs

Je sais que les valeurs autorisées sont stockées dans un champ de texte dans la table: ' content_node_field '.

les valeurs sont ensuite stockées dans « global_settings »

Je suis à la recherche d'imprimer une certaine façon sur chaque valeur autorisée individuelle en utilisant une boucle PHP.

Cependant, toutes les valeurs étant stockées dans un champ de texte. Il est difficile d'imprimer chaque valeur individuellement.

Répondre

1

Quelque chose comme ça devrait faire l'affaire.

// Get the global_settings like you described. 
$serialized_data = db_result(db_query("...")); 
// Unserialize the data. 
$unserialized_data = unserialize($serialized_data) 
// Foreach the allowed values. 
$values = array(); 
foreach(explode("\n", $unserialized_data['allowed_values']) as $value) { 
    $values[] = $value; 
} 
+0

Désolé, avoir quelques problèmes avec la boucle foreach. Obtention de cette erreur: avertissement: argument non valide fourni pour foreach() dans C: \ wamp \ www \ sites \ all \ modules \ custom \ marli \ marli.admin.inc sur la ligne 11. où il est indiqué 'allowed_values' ive mettre le champ 'global_settings' (qui contient les données) – GaxZE

+0

@GaxZE Correction d'un défaut mineur dans le code, testé et cela fonctionne! – googletorp

+0

Désolé d'être une douleur complète .. comment serais-je capable de stocker chaque valeur individuelle dans un variable? par exemple: $ value = array(); $ a = $ valeur ['a']; $ b = $ valeur ['b']; Je me sens im im proche de ce que j'essaie de réaliser ! – GaxZE

0

Si je reçois votre question à droite, vous pouvez créer des tableaux PHP en suffixant simplement le [] aux noms des champs, ainsi par exemple:

<input type="text" name="myname[]" /> 

Maintenant, vous pouvez obtenir les valeurs du tableau comme ceci:

foreach($myname as $value) 
{ 
    echo $value . '<br />'; 
} 

mises à jour selon Commentaire:

Vous pouvez utiliser la json_decode fonction pour convertir vos données en tableau et contrôlons ensuite en conséquence:

Exemple:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 

var_dump(json_decode($json, true)); 
+0

Dans les global_settings de champ contient des valeurs multiples .. exemple: a: 4: {s: 15: "text_processing"; s: 1: "0"; s: 10: "longueur_max"; s : 0: ""; s: 14: "allowed_values"; s: 17: "A * A B C D E"; s: 18: "allowed_values_php"; s: 0: "";} Im cherchant à produire chaque note (a, b, c, d, e) et dépouiller le reste maintenant je sais qu'il ya str_replace pour cela mais je fais cela sur plusieurs champs où le contenu varie. – GaxZE

+0

@GaxZE: S'il vous plaît voir ma réponse mise à jour. – Sarfraz