Page 1 sur 2

Probleme avec Selec contenant des données

Posté : 09 oct. 2007, 15:46
par oscar
Bonjour
S'il vous plait, je voudrais que vous voyiez le code afin de pouvoir le rectifier. Je cherche à incrémenter un <select> avec ces valeurs recuperer d'une base Mysql.
 
<?php
require("../conf.php");

// CONNEXION A LA BASE DE DONNEE
$cnx = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
$db= mysql_select_db( $sql_bdd );
    //création de la requête SQL:
$sql = "Select * From auteur ";
  
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
  
?>
<script language="javascript">
      function choixemp()
      {
	  if(document.emprunteur.fichier_1.value == 0) 
		{ 
        alert ('veuillez choisir un auteur'); 
        document.emprunteur.fichier_1.focus(); 
		return false; 
		}
	  else{
	    document.location.href = "paiements.php" ;
		return true;}
	  }
//Permet d'incrementer la cellule
function create_champ(i) {

	  var i2 = i + 1;

	  document.getElementById('leschamps_'+i).innerHTML = '<select name="fichier_'+i+'"></span>';
	  document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';
	  }

    </script>
<form name="emprunteur" action="" method="post">
Nom de l'Adhérent :
<?php  
  $ld = "<select name=\"fichier_1\" Onfocus= \"choixemp()\">";
  $ld .= "<option value=0>Choisissez</option>";
// On boucle sur la table
while ( $result = mysql_fetch_array( $requete)) {
 // $row est un tableau associatif
    // les éléments sont «indicés» par les noms
    // des colonnes. Je préfère cette technique à celle
    // des indices numériques..on ajoute une colonne..
    $numAut = $result["idAut"];
    $nomAut = $result["nomAut"];
	$prenomAut = $result["prenomAut"];

    $ld .= "<option value='$numAut'>$numAut $nomAut $prenomAut</option>";
}
$ld .= "</SELECT>";
echo "<span id=\"leschamps_4\"><a href=\"javascript:create_champ(4)\">Ajouter un champs</a></span>";
  
?>
<?php
print $ld;
?>
</form>
Merci
Osman

Posté : 09 oct. 2007, 15:54
par Berzemus
Salut;

rectifier ? C'est quoi l'erreur ? y'en a une ?

Au fait, si tu pouvais mettre ton code entre des balises
 en non des balises [code], ce serai sympa.

Posté : 09 oct. 2007, 16:07
par oscar
Je n'arrive pas à afficher le résultat attendu qui est d'avoir avec l'ajout d'un champs ce dernier recupere les valeurs de donnée qui se trouve dans une base Mysql

Posté : 09 oct. 2007, 16:11
par d0m
Je n'arrive pas à afficher le résultat attendu qui est d'avoir avec l'ajout d'un champs ce dernier recupere les valeurs de donnée qui se trouve dans une base Mysql
On avait compris, mais il faut être plus précis. Qu'est ce qu'il y a dans ta liste avec ton code, y'a t il des messages d'erreurs?

Posté : 09 oct. 2007, 16:28
par oscar
je voudrais q ue je puisse avoir le contenu de la table auteur lorsque j'increment le <select>
car lorsque je fait ajouter un champs la deuxieme ne recuperer pas les données de la table auteur.

Posté : 09 oct. 2007, 16:36
par d0m
as tu vérifié que ta requête renvoie bien plusieurs lignes?
while ( $result = mysql_fetch_array( $requete)){
  print_r($result);echo '<BR>'; 
}

Posté : 09 oct. 2007, 23:28
par Aureusms
as tu vérifié que ta requête renvoie bien plusieurs lignes?
while ( $result = mysql_fetch_array( $requete)){
  print_r($result);echo '<BR>'; 
}
Perso j'aime mieux utiliser mysql_num_rows ... c'est plus direct.

Posté : 10 oct. 2007, 10:05
par Berzemus
Ce qu'on aimerait savoir, Oscar, c'est si ton script engendre des erreurs. Il n'y a rien de marqué sur ta page du genre "warning" ou "error" ou autre chôse du style qui nous permettrait de situer l'erreur ?

Et ceci dit, j'ai toujours du mal à saisir complètement ce que tu veux faire.. si tu veux bien prendre un peu de temps pour l'expliquer en long et en large (en structurant ton discours, en relisant, pour le rendre plus compréhensible), ça ne saurais que nous aider à mieux te conseiller.

Essaye la méthode de dOm, et dis nous ce que tu voix. Tu devrais voir le contenu de ta base de données qui s'affiche sur la page (print_r et echo sauvent bien des vies, en permettent de voir ce qui se passe dans le code).
Perso j'aime mieux utiliser mysql_num_rows ... c'est plus direct.
Pour lire le contenu d'un tableau ? c'est original..

Posté : 11 oct. 2007, 04:55
par Patriboom
Si je comprends le problème, c'est que tu voudrais que ton<select> qui en javascript porte la valeur obtenue en PHP (par mysql_numrows).

Bref que

Code : Tout sélectionner

function create_champ(i) { var i2 = i + 1; document.getElementById('leschamps_'+i).innerHTML = '<select name="fichier_'+i+'"></span>'; document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : ''; } </script>
soit adapté en fonction de la valeur obtenue en
$sql = "Select * From auteur ";
  
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
Si tel est le cas, il faut que tout fasses écrire ton code javascript par PHP. Ainsi du pourras récupérer toutes les valeurs PHP que tu voudras dans ton code java.

Pour cela, tu gardes tes balises <?php ouvertes et tu fais echo " ... machin tout ton java "; ?>

Posté : 11 oct. 2007, 09:04
par Aureusms

Pour lire le contenu d'un tableau ? c'est original..
Non pour savoir si la requête retourne des données. Ou alors j'ai mal lu.

Posté : 11 oct. 2007, 09:26
par Berzemus

Pour lire le contenu d'un tableau ? c'est original..
Non pour savoir si la requête retourne des données. Ou alors j'ai mal lu.
va pour le joker :wink:

Posté : 11 oct. 2007, 14:46
par oscar
bonjour
j'ai essaye de mettre
document.getElementById('leschamps_'+i).innerHTML = '<select name="fichier_'+i+'"><option value=0>Choisissez</option><option<?php echo ("value='$numAut'>$numAut $nomAut $prenomAut");?></option>';
mais il n'y a pas d'évolution
Merci

Posté : 11 oct. 2007, 14:50
par d0m
et si tu nous décrivais précisemment ce que tu cherches à faire, avec des exemples?
Et pas en lignes de codes, en français.

Posté : 11 oct. 2007, 15:27
par oscar
Ce que je cherche c'est de pouvoir choisir un auteur se trouvant dans une liste avec <select> recuperer de la table auteur dans la base Mysql.
un exemple je saisi un livre, je veux recuperer la valeur de l'auteur du livre (j'ai les valeurs dans la liste deroulante) mais s'il s'agit de plusieurs auteurs, je veux qu'à chaque fois je rajoute une <select> que je puisse avoir les valeurs dans la nouvelle liste deroulante.
Nom de l'auteur :
  • choisir un auteur
    1 henry
    2 michel
Ajouter un auteur

Je pense que vous aviez compris mon but.
Merci

Posté : 11 oct. 2007, 15:36
par d0m
C'est peut être un point de vue personnel mais je pense que tu t'y prends mal.
Pour assigner plusieurs auteurs à un livre, pourquoi ne pas utiliser :
- une liste déroulante à choix multiples?
<SELECT MULTIPLE></SELECT>
OU
- une seule liste déroulante simple avec les auteurs et le bouton ajouter un auteur est un bouton SUBMIT qui va ajouter en variable SESSION l'auteur sélectionné à un ensemble d'auteurs déjà selectionné auparavant