2011-07-11 3 views
0

Donc, je travaille sur un système de balises, et j'ai un champ qui ressemble à ceci:Choisissez parmi séparées par des virgules liste

<input name="tags" type="text" /> 

Et je veux un utilisateur pour être en mesure de taper des balises comme (séparés par des virgules): « tag une, tag deux, tag Trois » et ainsi de suite, puis dans le PHP back-end, tirez chaque balise par lui-même et les mettre tous dans un tableau, comme:

$tags = array("Tag one", "Tag two", "Tag three"); 

et puis je » Je pense en utilisant foreach pour les insérer dans leurs propres lignes dans une base de données, que je sais faire et tout; mais je m'égare. Mais comment puis-je séparer les balises dans la chaîne de l'entrée de formulaire de l'utilisateur?

Répondre

0

Vous pouvez utiliser explode(). Il prend la clé par laquelle séparer, et renvoie un tableau.

2
$tags= explode(",", $input_from_tag_form); 

Voir plus d'information here.

1

C'est en fait assez simple, vous utilisez simplement la fonction d'exploser comme beaucoup ici ont point sur le PHP Offical Documentation vous pouvez trouver assez de bons exemples sur la façon d'utiliser cette fonction

En général, vous pouvez diviser en utilisant une expression (virgule , du côlon, des tirets, ou tout ce que vous pouvez penser)

<?php 
$datas = '1213456|Joe|Fake st 405|50678983942|[email protected]'; 

$data_array = explode('|', $datas); 

echo "$data_array[0], $data_array[1], $data_array[2], $data_array[3], $data_array[4]"; 

?> 
0

si l'URL submmited (je suppose GET à cet effet) ressemble à:
yoursite.com?save_tags=abba,music,1970

Le code ressemblera (avis, ce n'est pas la logique complète):

$tags_sql="('" . explode('),(',$_GET['save_tags']) . "')";//this happens after you sanitize input, or just use PDO/MySQLi params to insert the data...google it 
$sql = "INSERT INTO tags_table VALUEs {$tags_sql} ON UPDATE SET usage=usage+1"; 

Cela suppose une table d'étiquette avec 3 champs, id (Pk) | tag_name (unique) | utilisation (1 par défaut)

Questions connexes