champ non sauvegardé dans la bdd

Eléphant du PHP | 51 Messages

04 nov. 2010, 20:09

salut tout le monde
tout d'abord je vous prie de m'excuser parce que je n'ai pas pu bien situé mon pb vu qu'il est lié à html à sql et à javascript,finalement j'ai choisi sql.
alors voila j'ai utilisé chronoforms (composant pour joomla)pour créer un formulaire ensuite avec le code des listes dynamiques liées j'ai étendu mon formulaire en y ajoutant des dropdowns.
le formulaire contient les champs email,mot de passe ,verif mot de passe et deux listes liées pays et ville.
dans la partie formcode de chronoforms il y a possibilité d'ajouter du code php ainsi que du javascript et il y a une autre partie extracode à laquelle on peut faire appel à partir de la partie javascript.voici le code tout entier en ordre selon chronoforms à commencer par la partie html(qui contient du php)suivie du javascript et l'extracode à la fin qui contient aussi du php:
<div class="form_item">
  <div class="form_element cf_textbox">
    <label class="cf_label" style="width: 185px;">Email: *</label>
    <input class="cf_inputbox required validate-email" maxlength="150" size="30" title="" id="text_2" name="text_email" type="text" />
  
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_password">
    <label class="cf_label" style="width: 185px;">Mot De Passe: *</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="" id="text_3" name="text_mdp" type="password" />
    
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<div class="form_item">
  <div class="form_element cf_password">
    <label class="cf_label" style="width: 185px;">Vérification Mot de Passe: *</label>
    <input class="cf_inputbox required" maxlength="150" size="30" title="" id="text_4" name="text_vmdp" type="password" />
    
  </div>
  <div class="cfclear">&nbsp;</div>
</div>

<?php
if ( !$mainframe->isSite() ) { return; }
$db =& JFactory::getDBO();
$query = "
    SELECT *
        FROM `pays`
        ORDER BY `nompays`;
";
$db->setQuery($query);
$data = $db->loadObjectList();
?>
<fieldset style="border: 3px double #333399">
  <legend>Pays et ville de résidence</legend>
<label>Pays: </label>
  <select name="pays" id="pays">

    <option value="">- - - Choisissez un pays - - -</option>
<?php
/* Construction de la première liste : on se sert du tableau PHP */
foreach($data as $d) {
  echo "<option value='".$d->idpays."'>".$d->nompays."</option>";
}
?>
  </select>
<!-- ICI, le secret : on met un bloc avec un id ou va s'insérer le code de
         la seconde liste déroulande -->
  <span id="blocvilles"></span><br />
  <label for="ville"><?php echo JText::_( 'Ville' ); ?>:</label>
<?php 
echo "<span id='AjaxgetVille';style='color:black'>".JText::_('Choisissez un pays SVP' )."</span>
<span id='progress_gV' style='visibility:hidden;' > Recherche . . .</span>";
?>
</fieldset>

Code : Tout sélectionner

window.addEvent('domready', function() { $('pays').addEvent('change', function () { var a = $('pays').value; if ( a != null && a != '' ) { getVille(a); } else { $('AjaxgetVille').setHTML("<span id='AjaxgetVille';style='color:black' >Choisissez un pays SVP</span>") } }) ; }); function getVille(a){ var url = "index.php?option=com_chronocontact&chronoformname=test_form_94&task=extra&format=raw"; new Ajax(url, { method: 'get', onRequest: function(){ $('progress_gV').setStyle('visibility', 'visible'); }, onComplete: function(){ $('progress_gV').setStyle('visibility', 'hidden'); }, update: $('AjaxgetVille'), data: 'idpays='+a }).request(); };
<?php
$idpays =& JRequest::getString('idpays', '', 'get');
if ( $idpays ) {
  $db =& JFactory::getDBO();
  $query = "
    SELECT *
      FROM `ville`
      WHERE `idpays` = '$idpays' ;
  ";
  $db->setQuery($query);
  $data = $db->loadObjectList();
}
//$return = '<div>$data: '.print_r($data, true).'</div>';
if ( count($data) ) {
  $m = new stdClass();
  $m->idville = 0;
  $m->nomville = '--choisir une ville--';
  $data = array_merge(array($m), $data);
  //$return = '<div>$data: '.print_r($data, true).'</div>';
  $return  = JHTML::_('select.genericlist', $data, 'ville', 'class="inputbox required select" size="1" ', 'idville', 'nomville',  0); 
} else {
  $return = JText::_('Pays introuvable');
}
echo $return;
?>
je valide donc pour enregistrer mes données dans la bdd,mais alors mon pb c'est que tous les champs s'y enregistrent correctement sauf celui de la ville je ne trouve rien,aucune info,le champ est vide et je ne comprend pas pourquoi.
merci de votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

08 nov. 2010, 18:04

Hello, commence par ces quelques conseils pour cibler : sql-bases-donnees/php-sql-etapes-suivre ... 19378.html