Pagina 2 di 3

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 16:08
da treled
ecco cose mi genera nell'html:

Codice: Seleziona tutto

<script>$("#tags").tagit({ availableTags: ["Cani"]["Gatti"]["Manifestazioni"]}); </script>

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 16:23
da Zoff
Mi sa che stai andando troppo di fretta.
La stampa la devi fare alla fine del ciclo, non ogni giro.

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 16:34
da treled
ok, ma non so come far fargli la virgola ogni tag, perché cosi come è non funziona più lo script per colpa dell'ultima virgola che separa i tag:

Codice: Seleziona tutto

<?php
	$sql = $db->query("SELECT * FROM news_tags");
	echo '<script>';
	echo '$("#tags").tagit({
	availableTags: [
	';
	while($row = $sql->fetch_array())
	{
	echo '"'.$row["name"].'",';
	}
	echo ']});';
	echo '</script>';
?>
mi aiuti ad sistemare il codice?

grazie mille.

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 16:38
da Zoff

Codice: Seleziona tutto

<?php
   $sql = $db->query("SELECT * FROM news_tags");
   $tags = array();
   while($row = $sql->fetch_array())
   {
       $tags[] = $row['name'];
   }
?>
<script type="text/javascript">
$("#myTags").tagit({
    availableTags:  <?= json_encode($tags) ?>
});
</script>

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 16:54
da treled
guarda, ora lo genera modo.. ma non fa più il css e l'effetto che faceva prima,
ti incollo quello che mi ha generato il php e cosi vedi perché non fa più il css anche con il tuo esempio in html che mi avevi fatto prima.
ecco:

Codice: Seleziona tutto

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Esempio tagit</title>
    <link href="jquery.tagit.css" rel="stylesheet" type="text/css">
    <link href="tagit.ui-zendesk.css" rel="stylesheet" type="text/css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="tag-it.min.js" type="text/javascript" charset="utf-8"></script>
    <script>
	$("#tags").tagit({
    availableTags:  ["Cani","Gatti","Manifestazioni"]});
	</script>
</head>
<body>
	<h3>Esempio tagit</h3>
	<form>
	
		<input name="tags" id="tags" value="">
	</form>
</body>
</html>
idee?
ti ringrazio molto poi ti scrivo nei credits del sito che sto facendo a mia zia.

ciao.

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 17:02
da treled
ok, risolto il problema era questo:

Codice: Seleziona tutto

<script>
$(function(){
$("#tags").tagit({
    availableTags:  <?= json_encode($tags) ?>
});
});
</script>
poi ho notato che se scrivo un tag che non c'è nel db lui lo scrive lo stesso .. come faccio ad impedire questa cosa?

grazie mille.

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 17:46
da Zoff
Vedi la documentazione di tagit

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 20:19
da treled
ho visto ... ma non riesco ad capire qual'è,

aiutino?

grazie mille.

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 20:29
da treled
problema grandissimo.. si come che sto facendo come mi hai detto tu all'inizio, ma come opero con questa stringa SQL:

Codice: Seleziona tutto

 CREATE TABLE IF NOT EXISTS `tags` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
	`_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    CREATE TABLE IF NOT EXISTS `news_tags` (
      `id_news` int(11) NOT NULL,
      `id_tag` int(11) NOT NULL,
      PRIMARY KEY (`id_news`,`id_tag`),
      FOREIGN KEY (`id_news`) REFERENCES `news` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
      FOREIGN KEY (`id_tag`) REFERENCES `tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
avendo:

Codice: Seleziona tutto

 CREATE TABLE `news` (
  `id` bigint(8) unsigned auto_increment,
  `_userid` bigint(8),
  `_catid` bigint(8),
  `titolo` varchar(255),
  `intro` longtext,
  `content` longtext,
  `tag` text,
  `data` datetime,
  `active` int ,
  `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`)) ENGINE = MyISAM DEFAULT CHARSET=utf8; 
come faccio, perché vorrei se io modifico un tags ...... mi cambiasse tutti i tags che ho inserito nelle news..

EDIT - poi come salvo il tags, nella tabella news ??


come fare?

grazie mille.

Re: [PHP] inserimento dei tag in una form

Inviato: sabato 3 maggio 2014, 20:37
da Zoff
Mi sembrava ci fosse un opzione specifica.
Comunque basta fare retrn false su beforeTagAdded se non vuoi aggiungere il tag.

Qualcosa del genere:

Codice: Seleziona tutto

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Esempio tagit</title>

    <link href="jquery.tagit.css" rel="stylesheet" type="text/css">
    <link href="tagit.ui-zendesk.css" rel="stylesheet" type="text/css">
    
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="tag-it.min.js" type="text/javascript" charset="utf-8"></script>
    <script>
        $(function(){
			var tags = ['pippo','pluto','paperino','paperone','paperoga','topolino','minnie'];
            $('#tags').tagit({
				availableTags: tags,
				beforeTagAdded: function(event, ui) {
					return tags.indexOf(ui.tagLabel)>=0;
				}
			}); 
        });
    </script>
</head>
<body>
	<h3>Esempio tagit</h3>
	<form>
		<input name="tags" id="tags" value="pippo, pluto, paperino">
		<button>ok</button>
	</form>
</body>
</html>
Per quanto riguarda le tabelle puoi eliminare la tabella TAGS e scrivere direttamente il tag in NEWS_TAGS al posto dell'id del tag.
Per salvare, al submit, leggi i tags, fai l'explode() dello spazio e aggiungi una riga in tabella per ogni elemento ottenuto.

Re: [PHP] inserimento dei tag in una form

Inviato: domenica 4 maggio 2014, 17:04
da treled
ok per popolare questo con il database come faccio?

Codice: Seleziona tutto

<script>
        $(function(){
         var tags = ['pippo','pluto','paperino','paperone','paperoga','topolino','minnie'];
            $('#tags').tagit({
            availableTags: tags,
            beforeTagAdded: function(event, ui) {
               return tags.indexOf(ui.tagLabel)>=0;
            }
         }); 
        });
    </script>

grazie mille.

Re: [PHP] inserimento dei tag in una form

Inviato: lunedì 5 maggio 2014, 9:34
da Zoff
Non è il codice che ti ho fatto vedere nei messaggi precedenti?
Quello con la fetch da db e il json_encode?

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 15:30
da treled
ciao riprendo in questa disco ,, ma essendo che sto provando a implementare ancora i tags come fa il giornale del tirreno .

ho provato a popolare il codice con db ma non funziona nulla..
vedi se ho scritto giusto:

Codice: Seleziona tutto

<tr>
<td>tags</td>
<td><?php
   $sql = $db->query("SELECT * FROM tags");
   $tags = array();
   while($row = $sql->fetch_array())
   {
       $tags[] = $row['name'];
   }
?>
<script>
  $(function(){
    $('#tags').tagit({
            availableTags:  <?= json_encode($tags) ?>,
            beforeTagAdded: function(event, ui) {
               return tags.indexOf(ui.tagLabel)>=0;
            }
         });
   });		 
</script>
  <input name="tags" id="tags" value="">
</td>
</tr>
ti ringrazio molto e spero di finire il sito.

grazie e buona giornata.

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 15:34
da Zoff
Come ti ho scritto diverse volte, non scrivere "non funziona" descrivi nel dettaglio cosa succede e cosa ti aspetteresti.

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 15:51
da treled
ok, il problema che non prende ancora la variabile $tags da popolare con la tabella tags e il campo nome "name",

e per un'errore di sintassi non carica nemmeno il css ed ho verificato il css da source code della pagina lo prende normalmente..

solo c'è qualche errore di virgola o qualcosa e non carica il css.


hai idea?


grazie mille.

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 15:55
da Zoff
Metti il codice javascript come ultima cosa.
I css non so cosa c'entrino...

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 16:07
da treled
ciao dal source code generato viene cosi:

Codice: Seleziona tutto

<script>
	  $(function(){
		$('#tags').tagit({
				availableTags:  ["cani"],
				beforeTagAdded: function(event, ui) {
				   return tags.indexOf(ui.tagLabel)>=0;
				}
			 });
			
	   });		 
</script>
e lo script che popola è cosi:

Codice: Seleziona tutto

<?php
   $sql = $db->query("SELECT * FROM tags");
   $_tags = array();
   while($row = $sql->fetch_array())
   {
       $_tags[] = $row['name'];
   }
?>
<script>
	  $(function(){
		$('#tags').tagit({
				availableTags:  <?=json_encode($_tags)?>,
				beforeTagAdded: function(event, ui) {
				   return tags.indexOf(ui.tagLabel)>=0;
				}
			 });
			
	   });		 
</script>
  <input name="tags" id="tags" value="">
idea?

non so cosa possa essere che mentre che scrivo c non mi da il suggerimento del tag cani.

Il tuo esempio lo faceva.

come mai?

e perché ho aggiornato jquery? all'ultima versione?
grazie mille ..

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 16:10
da Zoff
Te l'ho già scritto. Metti il codice javascript alla fine, dopo l'input tags

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 16:15
da treled
io ho fatto cosi.. ma lo genera a modo , ma non suggerisce nulla come faceva il tuo esempio:

Codice: Seleziona tutto

<?php
   $sql = $db->query("SELECT * FROM tags");
   $_tags = array();
   while($row = $sql->fetch_array())
   {
       $_tags[] = $row['name'];
   }
?>
<input name="tags" id="tags">  
<script>
	  $(function(){
		$('#tags').tagit({
				availableTags:  <?=json_encode($_tags)?>,
				beforeTagAdded: function(event, ui) {
				   return tags.indexOf(ui.tagLabel)>=0;
				}
			 });
			
	   });		 
</script>
generato:

Codice: Seleziona tutto

<input name="tags" id="tags">  
<script>
	  $(function(){
		$('#tags').tagit({
				availableTags:  ["cani"],
				beforeTagAdded: function(event, ui) {
				   return tags.indexOf(ui.tagLabel)>=0;
				}
			 });
			
	   });		 
</script>
idee?

Re: [PHP] inserimento dei tag in una form

Inviato: martedì 3 giugno 2014, 16:16
da Zoff
non vedo errori.
Hai un solo tag disponibile che è cani.