Joomla.it Forum

Componenti per Joomla! => Gestione Form => : Gioacchino Cipriano 23 Jul 2011, 10:45:37

: Problema Chronoforms & Connectivity2
: Gioacchino Cipriano 23 Jul 2011, 10:45:37
Ciao a tutti,
ho un problema con questi due componenti che non riesco a risolvere:
In pratica ho 3 tabelle: Clienti, Commerciale, Utente
Con chronoforms ho creato un modulo per inserire i clienti, con un riferimento alla tabella Commerciale e uno agli Utenti e funziona perfettamente, nel modulo inserisco i dati del cliente e tramite menu a discesa assegno il Commerciale e l'Utente.
Con Connectivity2 ho creato una connessione che mi visualizza l'elenco dei clienti e per ognuno due pulsanti , uno per la modifica e uno per l'eliminazione.
Per l'elimina non c'è problema, ma quando faccio la modifica nei due menu a tendina non viene visualizzato il Commerciale e l'utente asssegnati, ma sempre l'ultimo dato delle due tabelle (Commerciale e Utente), così mi tocca riselezionare il commerciale e l'utente.
Sicuramente è una banalità, ma sono talmente fuso che non riesco a capire dove sta l'errore.
: Re:Problema Chronoforms & Connectivity2
: vales 23 Jul 2011, 13:25:14
Se per le modifiche usi lo stesso form dell'inserimento non ti gestisce le select relaltive al record in fase di modifica.

Se è così dovresti usare per le modifiche un nuovo form in cui con del codice php selezioni i valori delle option delle select corrispondenti al record in fase di modifica.
: Re:Problema Chronoforms & Connectivity2
: Gioacchino Cipriano 26 Jul 2011, 17:07:53
Ciao vales, scusa il ritardo, ma arrivo adesso.
Era quello che temevo, come faccio a modificare il php?
Questo è quello che utilizzo nel form di inserimento
:
<?php
 
// inizio aggiunta
$nome_agente JRequest::getInt('CognomeAgente''''post');
$db2 =& JFactory::getDBO();
 
$query2 "
 
SELECT `cf_id`,`CognomeAgente`,`NomeAgente`
 FROM `#__chronoforms_agenti`
 ORDER BY `CognomeAgente`
"
;
$db2->setQuery($query2);
$agenti $db2->loadAssocList();
$nome_agenti "";
foreach ( 
$agenti as $v ) {
 if ( 
$nome_agente == $v['CognomeAgente'] ) {
 
$selected "selected='selected'";
 } else {
 
$selected '';
 }
 
 
$nome_agenti .= "<option value='".$v['cf_id']."' $selected >".$v['CognomeAgente']." ".$v['NomeAgente']."</option>";
 
}
//Fine aggiunta
?>

Grazie in anticipo per l'aiuto.
: Re:Problema Chronoforms & Connectivity2
: Gioacchino Cipriano 27 Jul 2011, 18:25:03
Se per le modifiche usi lo stesso form dell'inserimento non ti gestisce le select relaltive al record in fase di modifica.

Se è così dovresti usare per le modifiche un nuovo form in cui con del codice php selezioni i valori delle option delle select corrispondenti al record in fase di modifica.
Scusa vales, ma devo creare anche una nuova connessione oltre al form?
: Re:Problema Chronoforms & Connectivity2
: vales 27 Jul 2011, 19:38:29
No la connessione è la stessa.

Si potrebbe usare anche lo stesso form di inserimento che però compia delle azioni diverse in fase di modifica.

Mmmmm questa cosa bisogna che la metta nel mirino. Appena ho tempo penserò a questo passaggio.

Una cosa il campo che catturi con la riga riportata sotto da dove arriva? Non mi torna che sia Int, almeno dal nome sembrerebbe una stringa.

:
$nome_agente = JRequest::getInt('CognomeAgente', '', 'post');
Hai provato ad usare getVar anzichè getInt ?
: Re:Problema Chronoforms & Connectivity2
: Gioacchino Cipriano 28 Jul 2011, 09:33:54
No la connessione è la stessa.

Si potrebbe usare anche lo stesso form di inserimento che però compia delle azioni diverse in fase di modifica.

Mmmmm questa cosa bisogna che la metta nel mirino. Appena ho tempo penserò a questo passaggio.

Una cosa il campo che catturi con la riga riportata sotto da dove arriva? Non mi torna che sia Int, almeno dal nome sembrerebbe una stringa.

:
$nome_agente = JRequest::getInt('CognomeAgente', '', 'post');
Hai provato ad usare getVar anzichè getInt ?
Questo pezzo di codice l'avevo ricavato da dei tuoi esempi.
Nel frattempo ho fatto delle prove utilizzando la connessione e modificando il link per la modifica dove gli passo l' $idAgente e poi con $_REQUEST lo richiamo nel form di modifica, (con echo ho controllato che il parametro fosse corretto), ma poi non capisco come utilizzarlo nel form per la selected.
: Re:Problema Chronoforms & Connectivity2
: vales 08 Aug 2011, 19:31:40
No, non conviene e non è corretto usare l'array globale $_REQUEST, joomla ha già i metodi necessari e sicuri per gestire i campi dei form.

E' difficile però darti delle dritte senza vedere i codici che stai usando in particolare il form.
: Re:Problema Chronoforms & Connectivity2
: Gioacchino Cipriano 16 Sep 2011, 09:54:39
Ciao vales,
dopo più di un mese senza connessione (sono inc...ato come una belva con il mio gestore), finalmente riesco a collegarmi con una velocità adeguata (grazie a un mio vicino che mi ha concesso l'uso della sua Wi-fi).
Per tornare al mio problema questo è il codice del mio form:
:
<?php
 
// inizio aggiunta
$nome_selected JRequest::getInt('name''''post');
$idAgente $_REQUEST['idAgente'];
echo 
"Provo a stampare l'agente ".$idAgente;
$idUtente $_REQUEST['idUtente'];
echo 
"Provo a stampare l'utente ".$idUtente;

$db =& JFactory::getDBO();
 
$query "
 
SELECT `id`,`name`
 FROM `#__users`
 ORDER BY `name`
"
;
$db->setQuery($query);
$nomes $db->loadAssocList();
$nome_options "";
foreach ( 
$nomes as $v ) {
 if ( 
$nome_selected == $v['name'] ) {
 
$selected "selected='selected'";
 } else {
 
$selected '';
 }
 
$nome_options .= "<option value='".$v['id']."' $selected >".$v['name']."</option>";
 
}
//Fine aggiunta
?>


<div class="form_item">
  <div class="form_element cf_text"> <span class="cf_text">Modifica Clienti abilitati</span> </div>
  <div class="cfclear">&nbsp;</div>
</div>
<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">Ragione Sociale</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="" id="RagioneSociale" name="RagioneSociale" type="text" />
 
  </div>
<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 150px;">Indirizzo Email</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="" id="Email" name="Email" type="text" />
 
  </div>

  <div class="cfclear">&nbsp;</div>
</div>
<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 150px;">Utente autorizzato</label>
    <select class="cf_inputbox" id="UtenteRegistrato" size="1" title=""  name="UtenteRegistrato">
    <!-- option value="">Choose Option</option>
      <option value="option 1">option 1</option>
<option value="option 2">option 2</option>
<option value="option 3">option 3</option -->
<?php echo $nome_options?>
    </select>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
<?php
 
// inizio aggiunta
$nome_agente JRequest::getInt('CognomeAgente''''post');
$db2 =& JFactory::getDBO();
 
$query2 "
 
SELECT `cf_id`,`CognomeAgente`,`NomeAgente`
 FROM `#__chronoforms_agenti`
 ORDER BY `CognomeAgente`
"
;
$db2->setQuery($query2);
$agenti $db2->loadAssocList();
$nome_agenti "";
foreach ( 
$agenti as $v ) {
 if ( 
$nome_agente == $v['CognomeAgente'] ) {
 
$selected "selected='selected'";
 } else {
 
$selected '';
 }
 
 
$nome_agenti .= "<option value='".$v['cf_id']."' $selected >".$v['CognomeAgente']." ".$v['NomeAgente']."</option>";
 
}
//Fine aggiunta
?>

 

<div class="form_item">
  <div class="form_element cf_dropdown">
    <label class="cf_label" style="width: 150px;">Commerciale di riferimento</label>
    <select class="cf_inputbox" id="select_3" size="1" title=""  name="CommercialeRiferimento">
    <!-- option value="">Choose Option</option>
      <option value="option 1">option 1</option>
<option value="option 2">option 2</option>
<option value="option 3">option 3</option -->
<?php echo $nome_agenti?>
    </select>
   
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
<div class="form_item">
  <div class="form_element cf_button">
    <input value="Conferma" name="button_4" type="submit" /><input type="reset" name="reset" value="Reset"/>
  </div>
  <div class="cfclear">&nbsp;</div>
</div>
E' un po' sporco per via delle prove che sto facendo.