2011-07-11 48 views
0

所以我正在一個標籤系統上,我有一個看起來像這樣的領域:選擇分隔列表

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

而且我希望用戶能夠輸入像標籤(以逗號分隔):「標籤之一,標籤兩個標籤三」等,然後在後端PHP,本身拉每個標籤,並把他們都放到一個數組,如:

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

然後我我想用foreach把它們插入數據庫中的自己的行中,我知道該怎麼做和所有;但我離題了。但是,我如何從用戶的表單輸入中分離字符串中的標籤?

回答

0

您可以使用explode()。它需要分離並返回一個數組。

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

查看更多信息here

1

這實際上是非常簡單,你只需要使用此爆炸的功能很多都點出來就PHP Offical Documentation你可以找到關於如何使用此功能

一般來說,你可以使用任何表達分裂不錯的例子(逗號,冒號,破折號,或任何你能想到的)

<?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

如果submmited URL(我認爲得到這個目的)看起來像:
yoursite.com?save_tags=abba,music,1970

的代碼看起來像(注意,這不是完整的邏輯):

$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"; 

這是假定標籤表3場,ID(PK)| TAG_NAME(唯一)|使用(默認爲1)