[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Повторный тэг
littleman
Есть скрипт , он работает , всё в норме , но одна проблема , когда поступают тэги и они повторяются , к примеру два раза нажал auto то и ссылки буду две .
Как сделать проверку чтобы повторного не было тэга ?
<?PHP
if ($_POST['name']){
$mys_bd = array ("auto","moto","velo","sanki","home","golden&q uot;);
$re = trim($_POST['textr']);
$r = explode(",",rtrim($re,","));
$num_r = COUNT ($r);
if (5 <
$num_r ){ $num_r = 5; }

for(
$i=0; $i < $num_r ; $i++){
$url = trim($r[$i]);
$urltag = str_replace(" ", "_", $url);
if (in_array(
$urltag,$mys_bd)){
$nametag = str_replace("_", " ", $url);
echo "
<br /><a style='text-decoration: none;' href='".$urltag."'>".$nametag."</a>";
}
}
}
?>
T1grOK
array_unique?

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Игорь_Vasinsky
ну это надо покумекать:

- получить всё из textarea
- регуляркой искать повторы строк и удалять дубликат

делать это можно на стороне сервера

а можно и смотреть на стороне клиента и делать это в реалтайме

отслеживать повторное нажатие можно - но не эффективно, т.к. я могу и ручками продублировать.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
littleman
Игорь_Vasinsky
Так как быть ? На стороне клиента я считаю не вариант , да и в JS не силён .
Как можно сделать в реалтайме ?
<script type="text/javascript">
function insert(a){
var ta = document.getElementById('text');
var text = a.innerHTML;
ta.value += text+', ';

return false;
}
</script>

Вы мне помогли с этим добавление . :)
Игорь_Vasinsky
Цитата
На стороне клиента я считаю не вариант , да и в JS не силён .
Как можно сделать в реалтайме ?


на стороне клиент - это и было про реалтам

но здесь на выводе = более 1го пробела, табуляция или перенос строки - приводятся к 1 пробелу = после onblur textarea


<a onclick="insert(this)" href="#">Вася</a>
<
a onclick="insert(this)" href="#">Петя</a>
<
a onclick="insert(this)" href="#">Петросян</a>
<
a onclick="insert(this)" href="#">Обама</a><br />

<
textarea onblur="checkDublicate(this)" id="text" cols="50" rows="10"></textarea>

<
script type="text/javascript">
function insert(a){
var ta = document.getElementById('text');
var text = a.innerHTML;
ta.value += text+' ';

return false;
}

function checkDublicate(textarea){
var text = textarea.value;

var arr = text.split(/\s+?|\t|\r/);

var newtext = [];

for(key in arr){

newtext[arr[key]] = arr[key];
}

var endtext = '';

for(k in newtext){
endtext +=newtext[k]+' ';
}

console.log(arr);

textarea.value = endtext;
}
</script>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.