affectation de variable dans document.form.champs.value

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affectation de variable dans document.form.champs.value

par ithron » 25 juil. 2005, 09:55

OK merci pour tout ;)

par Axel » 22 juil. 2005, 14:50

voilà une rapide explication:
function url2()
{
        nbselect = document.getElementsByName('select_aut').length; // ici comme tu l'as compris on calcule le nombre d'éléments avec un nom select_aut. C'est ici que c'est bizarre car il semble que IE fasse une recherche partielle: il prend tout les champs avec un "select_auth" et d'autres caractères derrière par contre mozilla n'a pas l'air de fonctionner comme ça.
        alert(nbselect);   //test du contenu  pour voir si nbselect  diff de 0
        var url = './savlivre.php?PHPSESSID=8f0f2953fa90b4151541247b11f89105&s_select_edit='+document.modif_livre.select_edit.value;
        url +='&s_select_coll='+document.modif_livre.select_coll.value;
        url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
        url +='&id_livre='+document.modif_livre.id_livre.value;
        url +='&choix='+document.modif_livre.choix.value;
        url +='&rqt='+document.modif_livre.rqt.value;
        for( j = 1 ; j <= nbselect ; j++ ){ //ici boucle sur le nombre de select trouvés
           var nomselect = "select_aut"+j ; //création du nom exact du select pour récupération de sa valeur
           if (document.getElementsByName(nomselect)[0].value != ''){ // ici le test, dans lequel tu récupères la valeur de l'élément avec le nom "nomselect' par contre je teste seulement que la valeur est vide mais tu peux le faire avec ta valeur 'nul' et ça éliminera de url tous les champs = 'nul'
                  url +='&s_select_aut'+j+'='+document.getElementsByName(nomselect)[0].value; //ici tu affectes la valeur dans l'url
           }                
        }
                alert(url); //test pour voir si l'url s'écrit correctement
        window.location.replace(url);
}

par ithron » 22 juil. 2005, 13:33

Yes merci ca fonctionne bien sur IE. \:D/ :pouce: :ordi:
Ca fonctionne mal sous Firefox, mais c'est un moindre mal, car sur la page d'accueil de mon site je met qu'il a été déveloper pour IE.

Par contre tu peux m'expliquer un peu commen ca fonctionne car je vois pas bien comment tu fait pour ferifier l'existance d'un champ.

Encore merci.
Et si tu as la solution pour que ca fonctionne sous Firefox je suis prenneur ;)

C'est à moi de modifier le titre pour le mettre en résolu ?

par Axel » 22 juil. 2005, 11:47

c'est encore moi.
j'ai modifié légèrement le code de la fonction url2, essaye pour voir:
function url2()
{
        nbselect = document.getElementsByName('select_aut').length;
        alert(nbselect);   
        var url = './savlivre.php?PHPSESSID=8f0f2953fa90b4151541247b11f89105&s_select_edit='+document.modif_livre.select_edit.value;
        url +='&s_select_coll='+document.modif_livre.select_coll.value;
        url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
        url +='&id_livre='+document.modif_livre.id_livre.value;
        url +='&choix='+document.modif_livre.choix.value;
        url +='&rqt='+document.modif_livre.rqt.value;
        for( j = 1 ; j <= nbselect ; j++ ){
           var nomselect = "select_aut"+j ;
           if (document.getElementsByName(nomselect)[0].value != ''){
                  url +='&s_select_aut'+j+'='+document.getElementsByName(nomselect)[0].value;
           }				 
        }
				alert(url);
        window.location.replace(url);
}
Si ça marche sur IE :agenouille: par contre la détection du nombre de select ne fonctionne pas sur mozilla
il doit y avoir une solution.... :roll:

par Axel » 22 juil. 2005, 11:30

Salut

Bon je viens de ragarder rapidement ton code et j'ai trouvé une petite erreur:

Code : Tout sélectionner

<select id='select_aut' name='select_aut1' class='chx' onchange:'javascript:url2();'>
regarde le onchange, tu as mis un ":" au lieu d'un "=" donc déjà un changement sur les auteurs ne faisait rien.
Bon ça ne règle pas complètement le pb mais au moins maintenant il compte les champs

l'erreur maintenant vient de l'écriture du "&s_select_aut" je ne sait pas pourquoi il affiche une erreur.

Je te tiens au courant :wink:

par ithron » 22 juil. 2005, 08:51

Salut,

Non je n'ai plus 0, la page ne se recharge plus, et je n'ai même pas d'erreur javascript dans la console de firefox.

Non jusque maintenant tout les codes qu'ont m'a envoyé n'ont pas fonctinnés.

Voici le code source html de ma page, mais attention pour l'avoir j'ai du le retirer de mes frames et donc certaine reference de chargement sont peut être fausse. Et puis la page n'est pas fini donc c'est encore très brouillon et certaines lignes ne font rien car en attente du dévelopement de la suite ;)
Bon courrage !
<html>
<head>
<title>Webdav Heroic Fantasy : Administration - Livres</title>
<link rel="stylesheet" href="../webdav.css" type="text/css">
</head>

<BODY OnLoad=top.window.titre.location.href="../titres.php?titre=admin">
<script language="JavaScript">
<!--
var message="Webdav Heroïc Fatasy !! ; )";
function click(e) {
if (document.all) {
if (event.button == 2) {
alert(message);
return false;
}
}
if (document.layers) {
if (e.which == 3) {
alert(message);
return false;
}
}
}

if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=click;

function url1()
{
	var url = './savlivre.php?PHPSESSID=8f0f2953fa90b4151541247b11f89105&s_select_ajaut='+document.autsup.select_ajaut.value;
	url +='&choix='+document.autsup.choix.value;
	url +='&multi='+document.autsup.multi.value;
	url +='&rqt='+document.autsup.rqt.value;
	url +='&titre='+document.autsup.titre.value;
	url +='&idlivre='+document.autsup.idlivre.value;
	window.location.replace(url);
}

function url2() 
{ 
    	nbselect = document.getElementsByName('select_aut').length; 
    	alert(nbselect);   
    	var url = './savlivre.php?PHPSESSID=8f0f2953fa90b4151541247b11f89105&s_select_edit='+document.modif_livre.select_edit.value; 
    	url +='&s_select_coll='+document.modif_livre.select_coll.value; 
    	url +='&s_select_cycle='+document.modif_livre.select_cycle.value; 
    	url +='&id_livre='+document.modif_livre.id_livre.value; 
    	url +='&choix='+document.modif_livre.choix.value; 
    	url +='&rqt='+document.modif_livre.rqt.value; 
    	for( j = 1 ; j <= nbselect ; j++ ){ 
    	   var nomselect = "select_aut"+j ; 
    	   if (document.getElementsByName('select_aut')[j].value != "" ){ 
    	          url +='&s_select_aut'+j+'='+document.getElementsByName('select_aut')[j].value; 
    	   } 
    	} 
    	window.location.replace(url); 
} 

function testform1(leaut,lesaut) {
	if(leaut.value == "" && lesaut.value == "new") {
    		alert('Entrez ou Choisissez un Auteur !');
    	    	leaut.focus();
    	    	return false
    	}
    	 	
    	return true
}

function testform2(letitre,leedit,lesedit,lecoll,lescoll,lecycle,lescycle,levol,letome,leparu) {
	if(letitre.value == "") {
    		alert('Entrez un Titre !');
    	    	letitre.focus();
    	    	return false
    	}
    	
    	if(leedit.value == "" && lesedit.value == "new") {
    		alert('Entrez ou Choisissez un Editeur !');
    	    	leedit.focus();
    	    	return false
    	}
    	
    	if(lecoll.value == "" && lescoll.value == "new") {
    		alert('Entrez ou Choisissez une Collection !');
    	    	lecoll.focus();
    	    	return false
    	}
    	
    	if(lecycle.value == "" && lescycle.value == "new") {
    		alert('Entrez ou Choisissez un Cycle !');
    	    	lecycle.focus();
    	    	return false
    	}
    	
    	if(isNaN(levol.value)) {
    		alert('Le Numéro de Volume est un entier positif !');
    	    	levol.focus();
    	    	return false
    	}
    	
    	if(isNaN(letome.value)) {
    		alert('Le Numéro de Tome est un entier positif !');
    	    	letome.focus();
    	    	return false
    	}
    	
    	if(isNaN(leparu.value)) {
    		alert('L\'Année de Parution est mauvaise !');
    	    	leparu.focus();
    	    	return false
    	}
    	
    	return true
}

// --> 
</script>

PHPSID : 8f0f2953fa90b4151541247b11f89105<a name="debut"></a><table align='center'>
<form enctype='multipart/form-data' method='post' name='modif_livre' action='./savlivre.php' onSubmit='return testform2(this.titre,this.editeur,this.select_edit,this.coll,this.select_coll,this.cycle,this.select_cycle,this.vol,this.tome,this.parution)'>
<input type='hidden' name='choix' value='modif'>
<input type='hidden' name='rqt' value='modif_livre'>

<input type='hidden' name='id_livre' value='83'>
<tr><td class='acc4' colspan='2'><u>Modification d'un Livre</u></td></tr>
<tr><td colspan='2'>&nbsp;</td></tr>
<tr><td colspan='2' class='acc1'><font color='red'>Choisissez un <b>Auteur</b>, un <b>Editeur</b>, une <b>Collection</b> et un <b>Cycle</b> avant de remplir les autres champs !</font></td></tr>
</table>

<table align=center cellspacing=20>
<td><a href="#fin"><img src="../../img/site/flecheb.gif" alt="Bas de page" class="liv"></a></td>
</table>

<table border='0'>
<tr><td class='acc1'>Titre :&nbsp;&nbsp;</td><td><input type='text' name='titre' value="La Guerre des Jumeaux" size='75' class='or'></td></tr>
<tr><td class='acc1'>Editeur :&nbsp;&nbsp;</td><td><input type='text' name='editeur' value="Fleuve Noir" size='75' class='or' disabled></td>
<td><select name='select_edit' class='chx' onChange='url2()'>
<option value='nul'>Pas de Changement</option>
<option value='new'>Nouvel</option><option value='4'>Bragelonne</option>
<option value='5'>Dav corp</option>

<option value='1'>Fleuve Noir</option>
<option value='3'>Livre de poche</option>
<option value='2'>Presses Pocket</option>
</select>
</td></tr>
<tr><td class='acc1'>Site Editeur :&nbsp;&nbsp;</td><td><input type='text' name='webedit' value="http://www.fleuvenoir.fr" size='75' class='or'></td></tr>
<tr><td class='acc1'>Collection :&nbsp;&nbsp;</td><td><input type='text' name='coll' value="Lancedragons" size='75' class='or' disabled></td>
<td><select name='select_coll' class='chx' onChange='url2()'>
<option value='nul'>Pas de Changement</option>
<option value='new'>Nouvelle</option><option value='5'>Fantasy</option>

<option value='6'>Indeterminées</option>
<option value='7'>Ithron adventure</option>
<option value='2'>Lancedragons</option>
<option value='4'>Magic</option>
<option value='3'>Ravenloft</option>
<option value='1'>Royaumes Oublies</option>
</select>
</td></tr>
<tr><td class='acc1' valign='top'>Note Collection :&nbsp;&nbsp;</td><td colspan='2'><textarea name='notecoll' rows='9' cols='150' class='or'>&#160&#160&#160&#160&#160&#160&#160&#160&#160&#160Lancedragon est le premier cycle romanesque inspiré par le célèbre jeu de rôle Donjons et Dragons, créé par TSR. Pour tous les joueurs, il s'agit d'un passage obligé semé de merveilleuses découvertes. La devise tient en un seul mot : l'aventure !<br>Dans cet univers où règnent la magie et le rêve, on reconnaît l'ombre du père fondateur : Tolkien, dont Le Seigneur des Anneaux a embrasé l'imagination de tant de générations de jeunes gens. Avec une référence pareille, comment s'étonner que tout cela soit passionnant ?<br> En 1996, le Fleuve Noir propose à ses lecteurs une traduction entièrement nouvelle des neuf premiers romans du cycle. Une approche beaucoup plus fine des premières oeuvres d'un duo d'écrivains devenus fameux.</textarea></td></tr>

<tr><td class='acc1'>Cycle :&nbsp;&nbsp;</td><td><input type='text' name='cycle' value="Les Légendes" size='75' class='or' disabled></td>
<td><select name='select_cycle' class='chx' onChange='url2()'>
<option value='nul'>Pas de Changement</option>
<option value='new'>Nouveau</option><option value='40'>Contes et légendes inachevés</option>
<option value='17'>Double-Diamant</option>
<option value='8'>Elminster</option>
<option value='41'>Histoire de la terre du milieu</option>
<option value='42'>Kevar Dimmad</option>
<option value='36'>L âge des mortels</option>

<option value='35'>La ballade de Pern</option>
<option value='33'>La Guerre des Ames</option>
<option value='29'>La Guerre du Chaos</option>
<option value='5'>La pierre du trouveur</option>
<option value='11'>La trilogie des mystères</option>
<option value='12'>Le chant et de l'épée</option>
<option value='24'>Le Cinquième Age</option>
<option value='7'>Le Clerc</option>
<option value='34'>Le cycle des épées</option>

<option value='38'>Le retour des archimages</option>
<option value='16'>Le Retour des Archimages</option>
<option value='39'>Le seigneur des anneaux</option>
<option value='22'>Les Agresseurs</option>
<option value='2'>Les Avatars</option>
<option value='31'>Les Barbares</option>
<option value='18'>Les Chroniques</option>
<option value='15'>Les Cités</option>
<option value='14'>Les conseillers et des rois</option>

<option value='23'>Les Contes</option>
<option value='28'>Les Défenseurs de la Magie</option>
<option value='37'>Les Draconiens</option>
<option value='25'>Les Elfes</option>
<option value='13'>Les empires perdus</option>
<option value='26'>Les Héros</option>
<option value='4'>Les héros de Phlan</option>
<option value='19'>Les Légendes</option>
<option value='10'>Les Ménestrels</option>

<option value='27'>Les Nains</option>
<option value='20'>Les Préludes</option>
<option value='32'>Les Premiers Peuples</option>
<option value='21'>Les Rencontres</option>
<option value='9'>Les Sélénae</option>
<option value='3'>Ombre Terre et le Val Bise</option>
<option value='30'>Raistlin</option>
<option value='1'>Récit indépendant</option>
<option value='6'>Shandril</option>

</select>
</td></tr>
<tr><td class='acc1' valign='top'>Note Cycle :&nbsp;&nbsp;</td><td colspan='2'><textarea name='notecycle' rows='9' cols='150' class='or'>&#160&#160&#160&#160&#160&#160&#160&#160&#160&#160Séparés après la Guerre de la Lance, les frères Majere connaissent des destins différents. Raistlin se tourne vers le mal, alors que Caramon reste fidèle à ses idéaux.</textarea></td></tr>
<tr><td class='acc1'><img src="../../img/livre/mini/dl_005.jpg">&nbsp;&nbsp;</td><td colspan='2'><input type='file' name='pathcouv' class='fich'><im></td></tr>
<tr><td class='acc1'>Volume :&nbsp;&nbsp;</td><td><input type='text' name='vol' value='5' size='3' class='or'></td></tr>
<tr><td class='acc1'>Tome :&nbsp;&nbsp;</td><td><input type='text' name='tome' value='2' size='3' class='or'></td></tr>
<tr><td class='acc1'>Parution :&nbsp;&nbsp;</td><td><input type='text' name='parution' value='1996' size='5' class='or'></td></tr>
<tr><td class='acc1' valign='top'>Résumé :&nbsp;&nbsp;</td><td colspan='2'><textarea name='resume' rows='9' cols='150' class='or'>Que reste-t-il de l'Ansalonie, cent ans après le Cataclysme ? Une terre dévastée où un peuple de spectres lutte pour la survie dans un monde ravagé par la famine, la peste et la guerre. Ravi de cet environnement "propice", le sorcier Raistlin, plus malfaisant que jamais, veut traverser le Portail pour aller défier dans son fief la Reine des Ténèbres. Mais les choses ne sont pas si simples, et, après une série d'événements étranges, il se découvre prisonnier d'une boucle temporelle sans autre issue que la mort. Si Crysania et Caramon l'abandonnent, c'en sera fini de lui.</textarea></td></tr>
<tr><td  class='acc1'>Auteur 1:&nbsp;&nbsp;</td><td><input type='text' name='auteur1' value="Margaret Weis" size='75' class='or' disabled></td>

<td><select id='select_aut' name='select_aut1' class='chx' onchange:'javascript:url2();'>
<option value='nul'>Pas de Changement</option>
<option value='new'>Nouvel</option><option value='5'>Anne K. Brown</option>
<option value='59'>Anne McCaffrey</option>
<option value='34'>Barbara Siegel</option>
<option value='17'>Chet Williamson</option>
<option value='48'>Christie Golden</option>
<option value='20'>Clayton Emery</option>
<option value='44'>Dan Parkinson</option>

<option value='26'>Dave Gross</option>
<option value='16'>David Cook</option>
<option value='24'>David Wise</option>
<option value='47'>Don Perrin</option>
<option value='63'>Douglas C. Kenney</option>
<option value='10'>Douglas Niles</option>
<option value='22'>Drew Karpyshyn</option>
<option value='6'>Ed Greenwood</option>
<option value='49'>Elaine Bergstrom</option>

<option value='12'>Elaine Cunningham</option>
<option value='41'>Ellen Dodge-Severson</option>
<option value='36'>Ellen Porath</option>
<option value='58'>Fritz Leiber</option>
<option value='56'>Hanovi Braddock</option>
<option value='62'>Henry N. Beard</option>
<option value='23'>J. Robert King</option>
<option value='9'>James Lowder</option>
<option value='3'>James M. Ward</option>

<option value='4'>Jane Cooper Hong</option>
<option value='13'>Jean Rabe</option>
<option value='60'>Jeff Crook</option>
<option value='7'>Jeff Grubb</option>
<option value='45'>John M. Roberts</option>
<option value='8'>Kate Novak</option>
<option value='33'>Kevin T. Stein</option>
<option value='51'>Laurelle K. Hamilton</option>
<option value='46'>Linda P. Baker</option>

<option value='28'>Margaret Weis</option>
<option value='15'>Mark Anthony</option>
<option value='55'>Mark Sumner</option>
<option value='32'>Mary Kirchoff</option>
<option value='19'>Mel Odom</option>
<option value='39'>Michael Williams</option>
<option value='64'>moi</option>
<option value='43'>Nancy V. Berberick</option>
<option value='50'>P. N. Elrod</option>

<option value='30'>Paul B. Thompson</option>
<option value='27'>Peter Archer</option>
<option value='2'>R. A. Salvatore</option>
<option value='42'>Richard A. Knaak</option>
<option value='1'>Richard Awlinson</option>
<option value='21'>Richard Baker</option>
<option value='18'>Richard S. Meyers</option>
<option value='25'>Roger E. Moore</option>
<option value='14'>Scott Ciencin</option>

<option value='35'>Scott Siegel</option>
<option value='57'>Somnia Orynn Lynn</option>
<option value='37'>Steve Winter</option>
<option value='52'>Tanya Huff</option>
<option value='54'>Teri McLaren</option>
<option value='40'>Teri Williams</option>
<option value='38'>Tina Daniell</option>
<option value='61'>Tolkien John Ronald Reuel</option>
<option value='31'>Tonya C. Cook</option>

<option value='29'>Tracy Hickman</option>
<option value='11'>Troy Denning</option>
<option value='53'>William R. Forstchen</option>
</select>
</td></tr>
<tr><td class='acc1'><img src="../../img/photo/margaret_weis.jpg">&nbsp;&nbsp;</td><td colspan='2'><input type='file' name='pathphotoaut1' class='fich'></td></tr>
<tr><td class='acc1' valign='top'>Note Auteur 1 :&nbsp;&nbsp;</td><td colspan='2'><textarea name='noteaut1' rows='9' cols='150' class='or'>&#160&#160&#160&#160&#160&#160&#160&#160&#160&#160Née le 16 mars 1948, à Independance (Missouri), elle est diplômée de l'Université du Missouri, à Columbia, dont elle sort major en Ecriture Créative et Littérature (1970). Elle se marie et donne le jour à deux enfants, David (1971) et Elizabeth (1974) Baldwin. Engagée par Herald (1972), une maison d'édition établie à Independance, elle commence comme correctrice pour finir Directrice Editoriale de la Division Presse. En 1981, elle commence à publier des livres de "non-fiction", souvent écrits en collaboration. Il est clair qu'elle est brillante et qu'elle a le goût de réussir ce qu'elle entreprend, mais jusqu'ici, sa carrière est toute classique, très ancrée même dans le terroir. Tout change en 1983. Elle va s'installer à Lake Geneva (Wisconsin) pour devenir éditeur (de livres) pour T.S.R., le grand éditeur (de jeux).<br>Elle n'est plus madame Baldwin. On la charge de mettre en forme une série romanesque conçue par Tracy Hickman, un spécialiste des jeux de rôles, également employé par T.S.R. De cette collaboration sortent les deux premières trilogies de Lancedragon ("La séquence des Chroniques" et "La séquence des Légendes") (1984, 1985), qui remportent un succès mondial.<br>En 1986, Margaret Weis n'a plus besoin de son salaire mais elle continue à co-diriger pour T.S.R. (toujours avec Tracy Hickman) les deux trilogies des contes ("La séquence des Contes", "The Tales II")(1987, 1992) et à co-écrire (encore avec Tracy Hickman) "Deuxième Génération" (1994) et "Dragons d'une Flamme d'Eté" (1995). Entre temps, elle s'est lancée dans l'aventure de l'écriture personnelle chez un grand éditeur. En collaboration avec Tracy Hikman, elle publie la trilogie de "L'Epée Noire" (1988), la trilogie de "La Rose du Prophète" (1989) et l'heptalogie des "Portes de la Mort" (1990-1994). Seule, elle donne la tétralogie de "L'Etoile du Gardien" (1990-1993) qu'elle continuera avec Don Perrin : "Knights of the Black Earth" (1994).<br>Elle vit actuellement avec Don Perrin dans une grange aménagée près de Lake Geneva. Elle a également écrit des scénarios de jeux de rôles. Elle a fondé une société, Mag Force 7, pour produire des jeu de cartes tiré de l'Etoile du Gardien. Elle vient d'ouvrir un magasin de jeux, The Game Guild ( http://www.egameguild.com/) à Lake Geneva. Elle va continuer le cycle de "L'Epée Noire" avec Don Perrin.</textarea></td></tr>
<tr><td  class='acc1'>Auteur 2:&nbsp;&nbsp;</td><td><input type='text' name='auteur2' value="Tracy Hickman" size='75' class='or' disabled></td>

<td><select id='select_aut' name='select_aut2' class='chx' onchange:'javascript:url2();'>
<option value='nul'>Pas de Changement</option>
<option value='new'>Nouvel</option><option value='5'>Anne K. Brown</option>
<option value='59'>Anne McCaffrey</option>
<option value='34'>Barbara Siegel</option>
<option value='17'>Chet Williamson</option>
<option value='48'>Christie Golden</option>
<option value='20'>Clayton Emery</option>
<option value='44'>Dan Parkinson</option>

<option value='26'>Dave Gross</option>
<option value='16'>David Cook</option>
<option value='24'>David Wise</option>
<option value='47'>Don Perrin</option>
<option value='63'>Douglas C. Kenney</option>
<option value='10'>Douglas Niles</option>
<option value='22'>Drew Karpyshyn</option>
<option value='6'>Ed Greenwood</option>
<option value='49'>Elaine Bergstrom</option>

<option value='12'>Elaine Cunningham</option>
<option value='41'>Ellen Dodge-Severson</option>
<option value='36'>Ellen Porath</option>
<option value='58'>Fritz Leiber</option>
<option value='56'>Hanovi Braddock</option>
<option value='62'>Henry N. Beard</option>
<option value='23'>J. Robert King</option>
<option value='9'>James Lowder</option>
<option value='3'>James M. Ward</option>

<option value='4'>Jane Cooper Hong</option>
<option value='13'>Jean Rabe</option>
<option value='60'>Jeff Crook</option>
<option value='7'>Jeff Grubb</option>
<option value='45'>John M. Roberts</option>
<option value='8'>Kate Novak</option>
<option value='33'>Kevin T. Stein</option>
<option value='51'>Laurelle K. Hamilton</option>
<option value='46'>Linda P. Baker</option>

<option value='28'>Margaret Weis</option>
<option value='15'>Mark Anthony</option>
<option value='55'>Mark Sumner</option>
<option value='32'>Mary Kirchoff</option>
<option value='19'>Mel Odom</option>
<option value='39'>Michael Williams</option>
<option value='64'>moi</option>
<option value='43'>Nancy V. Berberick</option>
<option value='50'>P. N. Elrod</option>

<option value='30'>Paul B. Thompson</option>
<option value='27'>Peter Archer</option>
<option value='2'>R. A. Salvatore</option>
<option value='42'>Richard A. Knaak</option>
<option value='1'>Richard Awlinson</option>
<option value='21'>Richard Baker</option>
<option value='18'>Richard S. Meyers</option>
<option value='25'>Roger E. Moore</option>
<option value='14'>Scott Ciencin</option>

<option value='35'>Scott Siegel</option>
<option value='57'>Somnia Orynn Lynn</option>
<option value='37'>Steve Winter</option>
<option value='52'>Tanya Huff</option>
<option value='54'>Teri McLaren</option>
<option value='40'>Teri Williams</option>
<option value='38'>Tina Daniell</option>
<option value='61'>Tolkien John Ronald Reuel</option>
<option value='31'>Tonya C. Cook</option>

<option value='29'>Tracy Hickman</option>
<option value='11'>Troy Denning</option>
<option value='53'>William R. Forstchen</option>
</select>
</td></tr>
<tr><td class='acc1'><img src="../../img/photo/tracy_hickman.jpg">&nbsp;&nbsp;</td><td colspan='2'><input type='file' name='pathphotoaut2' class='fich'></td></tr>
<tr><td class='acc1' valign='top'>Note Auteur 2 :&nbsp;&nbsp;</td><td colspan='2'><textarea name='noteaut2' rows='9' cols='150' class='or'>&#160&#160&#160&#160&#160&#160&#160&#160&#160&#160Tracy Hickman est né à Salt Lake City (Utah), le 26 novembre 1955. Il a reçu un diplôme de l'école supérieur de Provo en 1974 où ses intérêts majeurs étaient l'art dramatique, la musique et l'armée de l'air. En 1975, Tracy a commencé deux années de service comme missionnaire pour l'Église de Jésus Christ des Saints du Dernier Jour (les Mormons). Son poste initial a été de six mois à Hawaï jusqu'à ce que son visa soit approuvé, et il est passé à sa vocation définitive en Indonésie. Là, il a servi comme missionnaire à Surabaya, Djakarta et la ville de la montagne de Bandung avant d'être libéré en 1977. En conséquence, Tracy parle couramment l'Indonésien et base parfois ses expressions magiques sur cette langue.<br>Tracy a épousé sa chérie du lycée, Laura Curtis, quatre mois après son retour aux États-Unis. Ils sont les parents de quatre enfants: Ange, Curtis, Tasha, et Jarod. Tracy a travaillé comme magasinier dans un supermarché, projectionniste, directeur de théâtre, ouvrier du verre, assistant de direction à la télévision et opérateur de presse dans un centre de généalogie. C'était en 1981 - entre ses boulots et vouloir acheter des chaussures pour ses enfants - qu'il a proposé à TSR d'acheter deux de ses modules... et il a fini avec un emploi. <br>La majeure partie de son travail consistait en l'association avec Margaret Weis et leur première publication ensemble : "La séquence des Chroniques". Depuis 1985, ils ont co-écrits trente livres. Les deux premiers romans solos de Tracy, "Requiem of Stars" et "The Immortals", ont été publiés au printemps 1996. Tracy reste très actif dans son église et poursuit plusieurs hobbys : la guitare, la chanson, le piano, les jeux vidéos, la production de télévision et l'animation. Il aime lire des biographies, des histoires et des livres de science. Tracy réside actuellement à St. George (Utah) où ses enfants aiment la lumière du soleil et les voisins.</textarea></td></tr>
</table>

<table align='center'>

<tr><td colspan='2'>&nbsp;</td></tr>
<tr><td colspan='2' align='center'><input type='submit' value='Modifier' class='bout'></td></tr>
</table>
</form>

<table align=center cellspacing=20>
<td><a href="#debut"><img src="../../img/site/flecheh.gif" alt="Haut de page"class="liv"></a></td>
</table>
<a name="fin"></a>
</body>
</html>

par Axel » 21 juil. 2005, 23:29

ben merde alors ( :oops: pardon)

c'est bizarre, et tu as toujours 0 au nombre de select?

franchement là je ne vois pas.

tu avais essayé le code tel que je te l'avais envoyé et est ce qu'il marchait chez toi? :cry:

est ce que tu pourrais envoyer le code source en html pour voir ce que ça sort?

par ithron » 21 juil. 2005, 18:59

et j'avais une autre question, pourquoi différencier select_aut et s_select_aut, elles contiennent la même valeur non? :roll:
oui mais s_select_aut, je l'utilise comme valeur provisoir, elle n'a veritablement sa fonction avec les requêtes sql.

Sinon j'ai testé et ca ne marche pas :(

par ithron » 21 juil. 2005, 18:06

Tu as raison pour la syntaxe, mais j'avais fait des tests et j'en suis arrivé à cette écriture je ne sais plus trop pourquoi, mais ca marche comme ca depuis 1 an.

Je vais tester ton truc, si ca marche c'est cool car moi j'ai réussi à faire un truc qui fonctionne, c'est du code pas très propre mais bon, j'en ai eu mare de chercher (4j).

Je fait touner une 1eme fois la requete qui est utilisé pour avoir le nombre de select pour en connaitre le nombre, avant la création du formulaire :
$qryaut=0;
while ($enr4 = mysql_fetch_array($qry9,MYSQL_BOTH)) {
   $qryaut++;
}
Ensuite je le met dans un champs caché du formulaire :
echo "<input type='hidden' name='nbaut' value='".$qryaut."'>";
Lors de la modification du select la fonction url2() est appelé :
function url2()
{
   nbselect = document.modif_livre.nbaut.value;      var url = './savlivre.php?PHPSESSID=<?php echo session_id()?>&s_select_edit='+document.modif_livre.select_edit.value;
   url +='&s_select_coll='+document.modif_livre.select_coll.value;
   url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
   url +='&id_livre='+document.modif_livre.id_livre.value;
   url +='&choix='+document.modif_livre.choix.value;
   url +='&rqt='+document.modif_livre.rqt.value;
   if (nbselect>=1){url +='&s_select_aut1='+document.modif_livre.select_aut1.value;}
   if (nbselect>=2){url +='&s_select_aut2='+document.modif_livre.select_aut2.value;}
   if (nbselect>=3){url +='&s_select_aut3='+document.modif_livre.select_aut3.value;}
   if (nbselect>=4){url +='&s_select_aut4='+document.modif_livre.select_aut4.value;}
   if (nbselect>=5){url +='&s_select_aut5='+document.modif_livre.select_aut5.value;}
   if (nbselect>=6){url +='&s_select_aut6='+document.modif_livre.select_aut6.value;}
   if (nbselect>=7){url +='&s_select_aut7='+document.modif_livre.select_aut7.value;}
   if (nbselect>=8){url +='&s_select_aut8='+document.modif_livre.select_aut8.value;}
   if (nbselect>=9){url +='&s_select_aut9='+document.modif_livre.select_aut9.value;}
   if (nbselect>=10){url +='&s_select_aut10='+document.modif_livre.select_aut10.value;}
      window.location.replace(url);
}
C'est pas souple du tout comme code, mais ca fonctionne. Le pb c'est que si j'ai plus de 10 <select> ca va beuger :(

Je te dis si sa fonctionne
Merci

par Axel » 21 juil. 2005, 17:10

c'est encore moi

Bon je viens d'essayer avec les crochets et je trouve pareil ça ne marche pas .
Par contre j'ai essayé quelque chose de loufoque et ça marche, alors essaye chez toi pour voir et en plus tu dois pouvoir récupérer les champs car maintenant tes variables sont numérotées.

j'ai changé la ligne du select en :
echo "<td><select id='select_aut' name='select_aut".$n."' class='chx' onChange='url2()'>"; 
Il y manquait aussi un ' pour clore l'attribut id, je viens juste de m'en rendre compte.

Enfin ce n'est qu'un point de détail mais sur les attributs javas, il est préférable d'écrire

Code : Tout sélectionner

onchange:"javascript:url2();"
et j'avais une autre question, pourquoi différencier select_aut et s_select_aut, elles contiennent la même valeur non? :roll:

par Axel » 21 juil. 2005, 16:34

Salut

je suis entrain de lire ton code et il y a des choses qui me choquent un peu comme ton écriture des variables tableau:
$tabaut[$enr[id_aut]]=$enr[auteur_aut];
en principe on met des " pour préciser un champ ou un nom de variables à moins que id_aut et auteur_aut soient des constantes (? ):
$tabaut[$enr["id_aut"]]=$enr["auteur_aut"];
voir http://us3.php.net/manual/fr/language.types.array.php pour plus d'info. Et c'est valable pour toutes tes autres variables tableaux.

Ensuite dans la chaine suivante
echo "<tr><td  class='acc1'>Auteur ".$n.":&nbsp;&nbsp;</td><td><input type='text' name='auteur".$n."' value=\"$enr[auteur_aut]\" size='75' class='or'";
il faut sortir les variables de la chaine sinon tu peux avoir des soucis, tu l'as fait pour $n mais pas pour $enr[auteur_aut]:
echo "<tr><td  class='acc1'>Auteur ".$n.":&nbsp;&nbsp;</td><td><input type='text' name='auteur".$n."' value=\"".$enr["auteur_aut"]."\" size='75' class='or'";

par ithron » 21 juil. 2005, 12:48

Oui pour mon petit pb je ne passe que par l'url, mais en fin il y aura une validation du formulaire et donc la récupération des données de chaque <select>.

Je viens de faire un test ca ne marche pas mieux toujours pareil, se qui me chagrine le plus c'est que la page se recharge bien, mais sans les paramétres "select_aut" et surtout la detection du nombre de champs <select> donne toujours 0. Et il n'y a rien dans la console javascript de firefox :cry:

par Axel » 21 juil. 2005, 12:02

essaye de faire un essai en supprimant les corchets dans le select dans l'attribut . Ca posera un probleme pour la recup des données, mais c'est au moins pour voir si cela ecrit bien dans l'url.

ici:
echo "<td><select id='select_aut".$n." name='select_aut[]' class='chx' onChange='url2()'>"; 
Mais j'y pense tu récupères ces données uniquement par l'url, donc les crochets sont inutiles

ça devrait marcher sans :oops:

par ithron » 21 juil. 2005, 08:49

Je viens de tester mais ca ne marche pas les variables s_select_aut ne sont pas affectés car la detection du nombre de <select> indique 0.

Je vous donne les code qui affiche les <select> et la finction url2(), et quelque affectactions de variable qui interviennent, pour que vous puissiez vous faire une idée précise de l'istoire.
//Affectation de variable et création du comtenus du select :
$i=1;
while ($enr = mysql_fetch_array($qry8,MYSQL_BOTH)) {
	$tabaut[$enr[id_aut]]=$enr[auteur_aut];
	$b="s_select_aut".$i;
	$$b = isset(${$b}) ? ${$b} : 'nul';
	$i++;
}
//Création des <select> dans le formulaire
$n=1;
while ($enr = mysql_fetch_array($qry7,MYSQL_BOTH)) {
	$a="s_select_aut".$n;
	echo "<tr><td  class='acc1'>Auteur ".$n.":&nbsp;&nbsp;</td><td><input type='text' name='auteur".$n."' value=\"$enr[auteur_aut]\" size='75' class='or'";
	if ((${$a} != '%' && ${$a} != 'new') || ${$a} =='%'){echo " disabled";}
	echo "></td>";
	echo "<td><select id='select_aut".$n." name='select_aut[]' class='chx' onChange='url2()'>";
	echo "<option value='nul'>Pas de Changement</option>";
	echo "<option value='new'";
	if (${$a}=='new'){echo " selected";}
	echo ">Nouvel</option>";
	foreach ($tabaut as $c => $v){
		echo "<option value='".$c."'";     
		if ($c == ${$a}){echo " selected";}
		echo ">".$v."</option>";	     
 	}        
	echo "</select>";
	echo "</td></tr>";
	if (${$a} == '%' || ${$a} == 'new') {
		echo "<tr><td class='acc1'><img src=\"../../img/photo/".$enr[photo_aut]."\">&nbsp;&nbsp;</td><td colspan='2'><input type='file' name='pathphotoaut".$n."' class='fich'></td></tr>";
		echo "<tr><td class='acc1' valign='top'>Note Auteur ".$n." :&nbsp;&nbsp;</td><td colspan='2'><textarea name='noteaut".$n."' rows='9' cols='150' class='or'>".$enr[note_aut]."</textarea></td></tr>";
	}
	$n++;
}
function url2()
{
	nbselect = document.getElementsByName('select_aut').length; 
	alert(nbselect);  
	var url = './savlivre.php?PHPSESSID=<?php echo session_id()?>&s_select_edit='+document.modif_livre.select_edit.value;
	url +='&s_select_coll='+document.modif_livre.select_coll.value;
	url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
	url +='&id_livre='+document.modif_livre.id_livre.value;
	url +='&choix='+document.modif_livre.choix.value;
	url +='&rqt='+document.modif_livre.rqt.value;
	for( j = 1 ; j <= nbselect ; j++ ){ 
   	var nomselect = "select_aut"+j ; 
       if (document.getElementsByName('select_aut')[j].value != "" ){
      		url +='&s_select_aut'+j+'='+document.getElementsByName('select_aut')[j].value;
       } 
    } 
	window.location.replace(url);
}
Je cherche de mon coté.
Merci

par Axel » 20 juil. 2005, 20:14

trés juste j'avais oublié qu'il fallait mettre les crochets

merci cyrano