Joomla.it Forum
Non solo Joomla... => Sviluppo => : grad 18 Jul 2013, 11:18:29
-
Buongiorno a tutti! Vorrei sapere una cosa.
Ho una view con una tabella contenente un elenco di clienti e vorrei che al click del tasto NUOVO (o NEW) nella view che mi va a vedere che è una cosa tipo view=xxxx&layout=edit mi portasse dietro alcuni parametri avendo un url del tipo view=xxx&layout=edit&id_persona=xxx&id_tipologia=xxx
Si può fare?
PS: dimenticavo, nella mia view dove ho questa tabella nella mia url ci sono già i parametri che mi servono e vorrei portarmeli dietro
[allegato eliminato automaticamente dopo un anno]
-
Per chi avesse il mio solito problema, ho trovato una soluzione.
Ho un po barato, ma funziona.
Praticamente nella view dove ho già i parametri me li metto dentro la sessione così:
$id_persona=JRequest::getCmd('id_persona');
$_SESSION['id_persona'] = $id_persona;
e poi nella view dove mi servono i parametri e non li posso recuperare basta fare così:
$id_persona = $_SESSION['id_persona'];
-
Certo che te li puoi portare dietro, si puo fare tutto, tu hai una struttura mvc integrata di base ma si puo estendere e modificare. I bottoni che premi non sono altro che dei submit dei una form che richiamano determinate funzioni, ad esempio new ti richiama la funzione edit del controller che tu puoi modificare riscrivendola. Quindi se ti vuoi portare dietro id_persona non devi far altro che metterlo come campo hidden della form e al momento dell'invio te le troverai nella funzione edit del controller, se guardi le classi del core vedrai che la funzione edit fara un redirect al tuo layout edit, a questo redirect potrai aggingere questa variabile che ti serve per passarla alla view successiva
Comunque a tutti vi consiglio di guardarvi le classi del core per rendervi conto di cosa usate, non ci vuole nulla e molti dubbi sul funzionamento li risolve
-
quindi tu dici di mettere campi hidden nel form xml? tipo così:
<?xml version="1.0" encoding="UTF-8"?>
<form addrulepath="/administrator/components/com_anagrafiche/models/rules">
<fieldset>
<field
name="id"
type="hidden"/>
<field
name="id_persona"
type="hidden"/>
<field
name="id_tipologia_socio"
type="hidden"/>
<field
name="id_servizio"
type="sql"
default=""
label="Seleziona un servizio"
query="SELECT cod_servizio, nome_servizio FROM #__elenco_servizi"
key_field="cod_servizio"
value_field="nome_servizio"/>
</fieldset>
</form>
-
Sinceramente non capisco cosa stai facendo cosa sviluppi e non mi voglio mettere ad approfondire, a me dalla tua immagine sembrava una lista una lista non estende JmodelForm ma JmodelList un xml ti serve a ben poco, li puoi mettere a mano direttamente nella form
-
quindi tu dici di mettere i campi hidden nella view dove ho la lista?
-
e si, cosi quando invii la form invia anche quelle variabili, senno come faresti, ma come ti ho detto prima il solo aggiungere queste variabili non serve a niente, devi poi gestirle nella funzione del controller
-
chiedo sin da ora scusa se non ho letto l'intera conversazione ma c'è una cosa che tengo a sconsigliare fortemente: mi riferisco al prelievo dei parametri tramite la variabile globale $_SESSION in quanto potrebbe generare contenuti imprevedibili. Se ad esempio il contenuto della variabile venisse usato per effettuare una query gli effetti potrebbero essere devastanti se un utente maligno tentasse di effettuare uan sqlinjection. Qualcuno più esperto di me potrà sicurametne confermarvi questa cosa e spiegarvi i dettagli.
Piuttosto è consigliabile quindi utilizzare la funzione getVar() in cui è possibile anche specificare da dove vengono prese queste variabili (POST, GET, cookie, ecc...)
edit: non ricordo comunque come viene generato l'indirizzo della view edit ma se le variabili fossero passate con get ti basterebbe stampare (nel controller?) il bottone con url index.php?option=tuocomponente?view=edit?variabile=<?php echo getVar(informazione); ?>
-
e si, cosi quando invii la form invia anche quelle variabili, senno come faresti, ma come ti ho detto prima il solo aggiungere queste variabili non serve a niente, devi poi gestirle nella funzione del controller
Non saprei proprio come procedere... le variabili alla view dove ho la form arrivano, però quando poi clicco per inserire mi da questo errore:
Salvataggio fallito con il seguente errore: TableServizioassociatoaggiuntivo: :store fallito - Cannot add or update a child row: a foreign key constraint fails (`joomla_test`.`joomlatest_servizi_aggiuntivi`, CONSTRAINT `joomlatest_servizi_aggiuntivi_ibfk_1` FOREIGN KEY (`id_persona`) REFERENCES `joomlatest_anagrafiche_persone` (`id`) ON DELETE CASCADE) SQL=INSERT INTO `joomlatest_servizi_aggiuntivi` (`id`,`id_persona`,`id_tipologia_socio`,`id_servizio`) VALUES ('0','','','1')
Praticamente i campi mi rimangono vuoti....
-
questo errore non dipende di certo da questa cosa ma da come gestisci il tutto, il tuo errore lo da il mysql, se come avevi fatto prima ti funzionava usa quello.
-
eh no manco prima funzionava.. rimangono sempre vuoti i campi values... non riesco a settarli... nella view del form metto pure $this->item->PARAMETRO; e nemmeno così va...
la view è questa:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
$option = JRequest::getCmd('option');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
/*Valori che ho bisogno di mettere dentro nella query INSERT*/
$id_persona = $_SESSION['id_persona'];
$id_tipologia_socio = $_SESSION['id_tipologia_socio'];
$this->item->id_persona = $id_persona;
$this->item->id_tipologia_socio = $id_tipologia_socio;
?>
<form action="index.php" method="post" name="adminForm" id="servizioassociatoaggiuntivo-admin-form" class="form-validate">
<input type="hidden" name="option" value="<?=$option?>" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="id" value="<?=$this->item->id?>" />
<input type="hidden" name="id_persona" value="<?=$id_persona?>" />
<input type="hidden" name="id_tipologia_socio" value="<?=$id_tipologia_socio?>"/>
<?php echo JHtml::_('form.token');
echo "id_persona->" . $this->item->id_persona . " ";
echo "id_tipologia_socio->" . $this->item->id_tipologia_socio;?>
<?$this->item->id_persona=$id_persona;?>
<fieldset class="adminform">
<legend><?=JText::_( 'Servizi da poter aggiungere' ); ?></legend>
<ul class="adminformlist">
<? foreach ($this->form->getFieldset() as $field)
{ ?>
<li><?=$field->label?><?=$field->input?></li>
<? } ?>
</ul>
</fieldset>
</form>
-
@grad: ma per l'edit stai utilizzando i bottoni della toolbar? new, save, save2copy, ecc....?
-
@grad: ma per l'edit stai utilizzando i bottoni della toolbar? new, save, save2copy, ecc....?
sisi difatti questa è la view.html.php associata alla view edit:
<?php
defined('_JEXEC') or die();
jimport( 'joomla.application.component.view' );
class AnagraficheViewServizioassociatoaggiuntivo extends JView
{
function display($tpl = null)
{
// Get data from the model
$item = $this->get( 'Item' );
$form = $this->get( 'Form' );
// Disable main menu
JRequest::setVar('hidemainmenu', true);
// Toolbar
JToolBarHelper::title( JText::_( 'COM_ANAGRAFICHE_SERVIZI_ASSOCIATI_NEW' ), 'generic.png' );
JToolBarHelper::save('servizioassociatoaggiuntivo.save');
JToolBarHelper::save2new('servizioassociatoaggiuntivo.save2new');
JToolBarHelper::cancel('servizioassociatoaggiuntivo.cancel', false ? 'JTOOLBAR_CANCEL' : 'JTOOLBAR_CLOSE');
$this->item = $item;
$this->form = $form;
parent::display($tpl);
JText::script('COM_ANAGRAFICHE_ERRORE_VALIDAZIONE');
}
}
?>
-
per chiarire meglio la tua richiesta, tu hai bisogno che dall'elenco delle entry del tuo componente tu possa passare dei valori (che hai già) alla pagina di creazione di una nuova entry, è giusto?
Quindi devi recuperare questi valori nella view dell'edit ed elaborarli. Giusto?
-
Esattamente!O meglio, i valori li ho recuperati dalla view con la lista dei servizi, poi IN quelal vista clikko sul pulsante nuovo e vado a scegliere un servizio. In quella view, dove scelgo il servizio devo avere dei parametri che ho recuperato prima nella lista, quindi io nella view dell'edit ho già tutto pronto. A quel punto devo eleborarli mandandoli dentro la query insert into che joomla fa da solo... spero di esssere stato abbastanza chiaro, nel caso dimmelo che cerco di spiegarmi ancora meglio... è che con il pattern MVC e la gestione che ne fa joomla non mi trovo granchè bene
-
perdonami quindi tu nella view di modifica delle entry hai già i valori? Cioè se tu facessi un
echo $tuoValore;
nella view, stampi correttamente l'informazione che ti serve o che vuoi elaborare? E dopo averla elaborata se stampi
echo $valoreElaborato;
ottieni già ciò che ti serve alla fine?
Se si in che punto trovi esattamente la difficoltà e quali sono le necessità specifiche?
Probabimente sono io che non ho capito quindi ti servirà spiegarmelo un po più lentamente :)
-
è che con il pattern MVC e la gestione che ne fa joomla non mi trovo granchè bene
purtroppo come in tutte le cose bisogna fare esperienza, sicuramente all'inizio è un po spiazzante ma dopo ti assicuro che è una pacchia, comunque molte di queste cose con l'inserimento di valori multipli condizionali si fanno in javascript facendo richieste asincrone in ajax, ma qui si va a complicare ancora di piu
-
perdonami quindi tu nella view di modifica delle entry hai già i valori? Cioè se tu facessi un
echo $tuoValore;
nella view, stampi correttamente l'informazione che ti serve o che vuoi elaborare? E dopo averla elaborata se stampi
echo $valoreElaborato;
ottieni già ciò che ti serve alla fine?
Se si in che punto trovi esattamente la difficoltà e quali sono le necessità specifiche?
Probabimente sono io che non ho capito quindi ti servirà spiegarmelo un po più lentamente :)
Nono perdonami tu.. sono io che spesso non riesco a spiegarmi.
Allora, praticamente nell'immagine che ho allegato prima si vede la mia lista di servizi. Io ne voglio aggiungere un'altro, per esempio. A quel punto cosa faccio? Mi prendo dei valori in quella vista (view allegata prima) che sonoid_persona e id_tipologia_socio, e nella view aperta dopo il click sul pulsante NUOVO, li recupero questi valori.
Adesso nella view di inserimento nuovo servizio ho questa cosa qua (guarda allegato), riesco a stampare i valori RECUPERATI dalla view precedentemente visitata MA non riesco ad inserirli come valori da inserire nella query insert... Quindi il mio problema sostanziale è: mettere i miei valori recuperati (che te li ho stampati a video per far vedere che ce li ho) dentro i VALUES della query di inserimento
[allegato eliminato automaticamente dopo un anno]
-
forse ho capito ma non sperarci al 100% ;D
Tu hai già predisposto il database per accettare questi dati ed anche il file contenente i campi di ogni entry?
Cioè nel file sql di installazione hai creato i campi e joomla sa che esistono? C'è un file xml per comunicarglielo
-
ma come inserisci questi dati utilizzando un oggetto JTable o brutalmente con una query?
-
ecco, il file dovrebbe essere admin\models\forms\tuocomponente.xml
Se qui ci sono i campi sotto forma di standard form fields (li gestisci come si gestiscono i parametri del componente) il model - sempre se hai seguito la procedura standard per la sua creazione - va a prendere direttamente questi dati dalla view, senza che modifichi nulla nel model stesso.. L'unico accorgimento è che in questo file gli specifichi che questi campi sono hidden così non dovrai impostarli tu nella view.
-
forse ho capito ma non sperarci al 100% ;D
Tu hai già predisposto il database per accettare questi dati ed anche il file contenente i campi di ogni entry?
Cioè nel file sql di installazione hai creato i campi e joomla sa che esistono? C'è un file xml per comunicarglielo
Sono hidden nel xml ma non si riempiono come hai visto dall'errore mysql
Certo è già tutto predisposto e ho pure la form fatta con xml così
<?xml version="1.0" encoding="UTF-8"?>
<form addrulepath="/administrator/components/com_anagrafiche/models/rules">
<fieldset>
<field
name="id"
type="hidden"/>
<field
name="id_persona"
type="hidden"/>
<field
name="id_tipologia_socio"
type="hidden"/>
<field
name="id_servizio"
type="sql"
default=""
label="Seleziona un servizio"
query="SELECT cod_servizio, nome_servizio FROM #__elenco_servizi"
key_field="cod_servizio"
value_field="nome_servizio"/>
</fieldset>
</form>
-
Perchè
<input type="hidden" name="id_persona" value="<?=$id_persona?>" />
e non
<input type="hidden" name="id_persona" value="<?php echo $id_persona?>" />
?
Stessa cosa vale per la tipologia socio
-
Perchè
<input type="hidden" name="id_persona" value="<?=$id_persona?>" />
e non
<input type="hidden" name="id_persona" value="<?php echo $id_persona?>" />
?
Stessa cosa vale per la tipologia socio
sono la stessa cosa <?= è un abbreviazione fa l'echo
-
Inolte perchè fai questa assegnazione:
$this->item->id_persona = $id_persona;
$this->item->id_tipologia_socio = $id_tipologia_socio;
Ormai l'oggetto è stato costruito con i valori che hai già ottenuto, inizializzarli poco prima che l'oggetto verrà distrutto a che serve? :)
Inoltre ho visto che ti ostini ad utilizzare $_session anzichè getVar: tu gli hacker non li temi proprio eh? ;D
-
sono la stessa cosa <?= è un abbreviazione fa l'echo
Non ho idea di che versione di php abbia il tuo server ma non tutti supportano le shorthands prima della 5.4.0 e non tutti consentono di usarle. Al di la di questo i campi nel form stesso vengono popolati? E se usi l'echo classico?
edit: casualmente la stampa delle variabili funzionante l'hai fatta proprio con echo mentre questa che non va l'hai fatta con l'abbreviazione. Potrebbe non essere una coincidenza, fammi sapere
-
Inolte perchè fai questa assegnazione:
$this->item->id_persona = $id_persona;
$this->item->id_tipologia_socio = $id_tipologia_socio;
Ormai l'oggetto è stato costruito con i valori che hai già ottenuto, inizializzarli poco prima che l'oggetto verrà distrutto a che serve? :)
Inoltre ho visto che ti ostini ad utilizzare $_session anzichè getVar: tu gli hacker non li temi proprio eh? ;D
perchè $this->item->id_persona senza dargli = $id_persona è vuoto
se io lo stampo senza fargli l'assegnazione non stampa nulla.... è questo il mio problema!!!
-
Qui stai facendo un giro di peppe inutile:
$id_persona = $_SESSION['id_persona'];
$id_tipologia_socio = $_SESSION['id_tipologia_socio'];
$this->item->id_persona = $id_persona;
$this->item->id_tipologia_socio = $id_tipologia_socio;
Finisce che magari il problema era solo una lettera in più/in meno/sbagliata.
E' come dire devo mettere le penne a posto ma prima di metterle nel portapenne le passo dentro una bacinella... A che ti serve la doppia assegnazione? a niente!
anzi per assurdo puoi fare direttamente
<input type="hidden" name="id_persona" value="<?php echo $_SESSION['id_persona']; ?>" />
Così viene popolato il campo input?
-
giovi ti ringrazio tantissimo epr la disponibilità che mi stai dando .
Comunque no purtroppo non funziona nemmeno così .... il vampo values rimane sempre vuoto... l'unico che cambia è il numero apapartenente al servizio selezionato
-
cioè se tu stampi la variabile la visualizzi, mentre se stampi il valore nell campo input no, sbaglio?
Cioè nel sorgente html ottieni questo: <input type="hidden" name="id_persona" value="" />
Quindi il problema è proprio qui?
-
no forse non ci siamo capiti...
quello è l'edit.php da quanto ho capito è una base per l'MVC di joomla!
Se faccio <?php echo $this->item->id_persona; ?> non mi stampa NIENTE. Quindi vuol dire che è vuoto. Il mio obiettivo non è riempire il form che vedi fatto in html, quello serve solo per la modifica da quanto ho capito. a me serve INSERIRE degli elementi nel mio db!
In qualche modo devo riempire le VALUES della mia query...
-
e se non lo fai tramite la view edit come lo fai? :) In quale momento esatto ti serve riempire il database, durante l'edit o durante altre operazionoi (e se si quali?)
Nel primo caso la procedura è questa: riempi il campo e poi il model pensa a tutto.
-
io voglio riempire il database quando clikko il pulsante SALVA. per me finisce li.. nella mia testa è tutto così semplice, ma qui sta diventando un casino e non mi ci trovo per nulla...
Nel primo caso la procedura è questa: riempi il campo e poi il model pensa a tutto.
la view edit.php mi dovrebbe creare il modulo in questa maniera no?
<fieldset class="adminform">
<legend><?=JText::_( 'Servizi da poter aggiungere' ); ?></legend>
<ul class="adminformlist">
<? foreach ($this->form->getFieldset() as $field)
{ ?>
<li><?=$field->label?><?=$field->input?></li>
<? } ?>
</ul>
</fieldset>
e il form è questo scritto in xml
<?xml version="1.0" encoding="UTF-8"?>
<form addrulepath="/administrator/components/com_anagrafiche/models/rules">
<fieldset>
<field
name="id"
type="hidden"/>
<field
name="id_persona"
type="hidden"/>
<field
name="id_tipologia_socio"
type="hidden"/>
<field
name="id_servizio"
type="sql"
default=""
label="Seleziona un servizio"
query="SELECT cod_servizio, nome_servizio FROM #__elenco_servizi"
key_field="cod_servizio"
value_field="nome_servizio"/>
</fieldset>
</form>
quindi mi stai dicendo che devo modificare il model?
il mio model è questo:
<?php
defined('_JEXEC') or die();
jimport( 'joomla.application.component.modeladmin' );
class AnagraficheModelServizioassociatoaggiuntivo extends JModelAdmin
{
public function getForm($data = array(), $loadData = true)
{
// Prendo il form MODIFICO QUESTO?
$form = $this->loadForm('com_anagrafiche.servizioassociatoaggiuntivo', 'servizioassociatoaggiuntivo', array('control' => 'jform', 'load_data' => $loadData));
if (!$form)
{
return false;
}
else
{
return $form;
}
}
public function loadFormData()
{
// Load form data
$data = $this->getItem();
return $data;
}
}
?>
-
nono ti sto dicendo che nella view edit.php devi inserire a mano i vari campi e non come fa joomla. Anche se è un po sporco, è il metodo più rapido:
<fieldset class="adminform">
<legend><?=JText::_( 'Servizi da poter aggiungere' ); ?></legend>
<input type="hidden" name="id_persona" value="<?php echo $_SESSION['id_persona']; ?>" />
<input type="hidden" name="id_tipologia_socio" value="<?php echo $_SESSION['id_tipologia_socio']; ?>" />
<ul class="adminformlist">
<?php foreach ($this->form->getFieldset() as $field)
if ($field->label!="id_persona" and $field->label!="id_tipologia_socio")
{ ?>
<li><?=$field->label?><?=$field->input?></li>
<? } ?>
</ul>
</fieldset>
Il model riconosce automaticamente i campi e se la vede lui a salvarli. Prova
-
c'ho provato ma niente...
allora per essere PRECISISSIMO ti posto tutta la mia edit.php e l'errore di mysql:
edit.php
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
$option = JRequest::getCmd('option');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
$id_persona = $_SESSION['id_persona'];
$id_tipologia_socio = $_SESSION['id_tipologia_socio'];
?>
<form action="index.php" method="post" name="adminForm" id="servizioassociatoaggiuntivo-admin-form" class="form-validate">
<input type="hidden" name="option" value="<?=$option?>" />
<input type="hidden" name="task" value="" />
<?php echo JHtml::_('form.token');
echo "id_persona->" . $id_persona . " ";
echo "id_tipologia_socio->" . $id_tipologia_socio;?>
<fieldset class="adminform">
<legend><?=JText::_( 'Servizi da poter aggiungere' ); ?></legend>
<input type="hidden" name="id_persona" value="<?php echo $_SESSION['id_persona']; ?>" />
<input type="hidden" name="id_tipologia_socio" value="<?php echo $_SESSION['id_tipologia_socio']; ?>" />
<ul class="adminformlist">
<?php foreach ($this->form->getFieldset() as $field)
if ($field->name!="id_persona" and $field->name!="id_tipologia_socio")
{ ?>
<li><?=$field->label?><?=$field->input?></li>
<? } ?>
</ul>
</fieldset>
</form>
errore mysql quando clicco su salva:
Salvataggio fallito con il seguente errore: TableServizioassociatoaggiuntivo: :store fallito - Cannot add or update a child row: a foreign key constraint fails (`joomla_test`.`joomlatest_servizi_aggiuntivi`, CONSTRAINT `joomlatest_servizi_aggiuntivi_ibfk_1` FOREIGN KEY (`id_persona`) REFERENCES `joomlatest_anagrafiche_persone` (`id`) ON DELETE CASCADE) SQL=INSERT INTO `joomlatest_servizi_aggiuntivi` (`id_persona`,`id_tipologia_socio`,`id_servizio`) VALUES ('','','4')
-
Per sicurezza... stai lavorando su Joomla 2.5??
Io non ho così tanti campi nella view e non mi torna qualche attributo del form:
Ad esempio io ho
<form action="<?php echo JRoute::_('index.php?option=com_simplefilemanager&layout=edit&id='.(int) $this->item->id); ?>" method="post" name="adminForm"> mentre tu hai come action solo index.php
Poi io ho questo nel campo task:
<input type="hidden" name="task" value="simplefilemanager.edit" />
A te invece il campo task è vuoto!
Non hai un'installazione remota dove puoi farmi vedere un backed di prova?
-
eh no... sono in locale, altrimenti te l'avrei fatto vedere molto volentieri.. tanto è un sito di test, che serve a me per imparare a programmare...
Comunque ho seguito come base per iniziare questa guida [size=78%]http://library.logicsistemi.it/it/joomla/developing-joomla-25-mvc-components (http://library.logicsistemi.it/it/joomla/developing-joomla-25-mvc-components)[/size]
PS: la mia versioen di joomla è la 2.5.11
-
ti posso consigliare di installare il componente su un sito test (crealo su una piattaforma gratuita qualunque) in modo che sia possibile vedere le modiiche in tempo reale. Altrimenti ad ogni modifica seguiranno 3 post e non ne verremo mai a capo! Comunque sono sicuro che il metodo sia questo perchè avevo la tua stessa esigenza qualche tempo fa con un'estensione... di prova :)
-
stasera a casa faccio un dominio veloce su altervista e installo un joomla di test e facciamo delel prove
-
Hosting fatto.. il sito lo puoi trovare qua: http://testcomponente.joomlahost.it/ (http://testcomponente.joomlahost.it/)
entro stanotte lo sistemo e vi do user e pass
-
Il componente l'ho installato correttamente nel sito test http://testcomponente.joomlahost.it/ (http://testcomponente.joomlahost.it/)
Il componente si chiama Anagrafiche.
L'elenco dei servizi funziona, l'elenco dei servizi soci funziona e pure quello dei soci.
2 sono i problemi:
- il primo il più semplice è l'aggiunta di un servizio ad una tipologia di socio, che ho raggirato con un list sql che poi potrete vedere.
- il secondo è invece in gestione anagrafica/lista servizi dove si vedono i due servizi: quelli base a seconda del tipo del socio e quelli PERSONALI, su richiesta del cliente. Il problema è che non inserisce il servizio. Ma questo lo sappiamo già tutti bene perchè è due pagine di forum che ne stiamo discutendo.
Allora:
link: http://testcomponente.joomlahost.it/ (http://testcomponente.joomlahost.it/)
-
scusa il ritardo ma sono rientrato solo ieri sera. Mi sono permesso di installare extplorer per poter verificare il contenuto dei file direttamente ma mi sorge un dubbio:
qual'è tra le tante la view su cui stiamo lavorando? Servizioassociatoaggiuntivo?
edit: Dubbio risolto.
Ti consiglio di cancellare le pwd dal forum, chiunque potrebbe accedere al sito e cancellare tutto!
-
Il problema potrebbe essere perchè non hai creato un campo per salvare il dato id_persona :) Infatti hai:
CREATE (http://search.mysql.com/search?site=refman-51&q=CREATE&lr=lang_en) TABLE (http://search.mysql.com/search?site=refman-51&q=TABLE&lr=lang_en) #__associazione_servizi (
- id_tipologia_socio INTEGER (http://search.mysql.com/search?site=refman-51&q=INTEGER&lr=lang_en) NOT (http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html) NULL (http://search.mysql.com/search?site=refman-51&q=NULL&lr=lang_en),
- id_servizio INTEGER (http://search.mysql.com/search?site=refman-51&q=INTEGER&lr=lang_en) NOT (http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html) NULL (http://search.mysql.com/search?site=refman-51&q=NULL&lr=lang_en),
- Foreign Key (http://search.mysql.com/search?site=refman-51&q=FOREIGN%20KEY&lr=lang_en) (id_tipologia_socio) references (http://search.mysql.com/search?site=refman-51&q=REFERENCES&lr=lang_en) #__tipologia_socio(id),
- Foreign Key (http://search.mysql.com/search?site=refman-51&q=FOREIGN%20KEY&lr=lang_en) (id_servizio) references (http://search.mysql.com/search?site=refman-51&q=REFERENCES&lr=lang_en) #__elenco_servizi(cod_serivizo)
- ) ENGINE (http://search.mysql.com/search?site=refman-51&q=ENGINE&lr=lang_en)=MyISAM DEFAULT (http://search.mysql.com/search?site=refman-51&q=DEFAULT&lr=lang_en) CHARSET (http://search.mysql.com/search?site=refman-51&q=CHARSET&lr=lang_en)=utf8;
Probabilmente l'id persona lo stai inserendo in un campo che non è destinato a lui
-
ciao giovi sei sempre troppo disponibile! ;D
Comunque è sbagliato... il mio sql è
CREATE TABLE #__associazione_servizi (
id_associazione INTEGER auto_increment not null,
id_tipologia_socio INTEGER NOT NULL,
id_servizio INTEGER NOT NULL,
PRIMARY KEY id_associazione(id_associazione),
INDEX id_tipologia_socio_key(id_tipologia_socio),
INDEX id_servizio_key (id_servizio),
FOREIGN KEY (id_tipologia_socio) REFERENCES #__tipologia_socio(id) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (id_servizio) REFERENCES #__elenco_servizi(cod_servizio) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
Se preferisce in privato ti mando lo zip del componente tanto è per un test...
-
puoi controllare quello online? Io l'ho visto tramite extplorer, non vorrei che non ci troviamo con i file :)
-
causa troppa difficoltà nel fare questa cosa direi di abbandonare :'(