[PHP] inserimento dei tag in una form

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio da treled »

ecco cose mi genera nell'html:

Codice: Seleziona tutto

<script>$("#tags").tagit({ availableTags: ["Cani"]["Gatti"]["Manifestazioni"]}); </script>
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio da Zoff »

Mi sa che stai andando troppo di fretta.
La stampa la devi fare alla fine del ciclo, non ogni giro.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio 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>
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio da Zoff »

Vedi la documentazione di tagit
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio da treled »

ho visto ... ma non riesco ad capire qual'è,

aiutino?

grazie mille.
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio da Zoff »

Non è il codice che ti ho fatto vedere nei messaggi precedenti?
Quello con la fetch da db e il json_encode?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio da Zoff »

Come ti ho scritto diverse volte, non scrivere "non funziona" descrivi nel dettaglio cosa succede e cosa ti aspetteresti.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio da Zoff »

Metti il codice javascript come ultima cosa.
I css non so cosa c'entrino...
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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 ..
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio da Zoff »

Te l'ho già scritto. Metti il codice javascript alla fine, dopo l'input tags
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
treled
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: lunedì 26 aprile 2010, 17:36
Desktop: gnome
Distribuzione: ubuntu 23.04/22.04
Sesso: Maschile
Località: Massa(MS)

Re: [PHP] inserimento dei tag in una form

Messaggio 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?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] inserimento dei tag in una form

Messaggio da Zoff »

non vedo errori.
Hai un solo tag disponibile che è cani.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti