5328 sujets

Sémantique web et HTML

Bon, d'accord, ce n'est pas très fin !
Bonjour à tous,
Voici le problème :
J'ai ça :

<!-- Forme pour le tranfert vers la page page.php -->
        <div id = "forme" class = "centre">	
			<form name = "maforme" method = "get" action = "page.php" accept-charset = "ISO-8859-1">
 			<p> <input type = "hidden" name = "date" value = ""></p>
			<p> <input type = "hidden" name = "cle" value = ""></p>
			<p> <input type = "hidden" name = "libelle" value = ""></p>
 			<p> <input type = "hidden" name = "ext" value = ""></p>
 			<p> 
				<input type = "button" onclick = "cache();" value = "Annuler">
				<input type = "submit" name = "submit" value = "Lire ce document">
			</p>
			</form>
		</div>

Derrière, j'aimerai ajouter une ligne dans ma <form dan le genre

 			<p> <input type = "hidden" name = "retour" value = ""></p>

Et remplir le champ 'retour' avec le résultat 'retour' de ce script :

<script type="text/javascript">
var retour = window.location.pathname;
retour = retour.split("/");
retour = retour[retour.length - 1];
document.write(retour);
</script>

Possible ?
Si quelqu'un a un bonne idée, je suis preneur.
Merci d'avance et cordiales salutations
H.
P.S.
J'ai oublié de dire que les champs de ma <form sont remplis par un onclick = "SelectLigne(this)" sur une ligne d'une table (array)
H.
Modérateur
Et l'eau,

Je ne comprends pas bien ton souci. Tu voudrais en JS, injecter un input:hidden et comme valeur lui retourner un élément de l'url ?

Bzhorace a écrit :
P.S.
J'ai oublié de dire que les champs de ma &lt;form sont remplis par un onclick = "SelectLigne(this)" sur une ligne d'une table (array)
H.


C'est lorsque tu veux injecter ton input:hidden ? Si oui, quel est cette fonction ?

ps : un exemple plus détaillé ne serait pas du luxe (html/css/JS).
Modifié par niuxe (26 May 2021 - 19:42)
Merci niuxe,
Quelle promptitude ...
Je me rends compte que ma requête est incomplète !
Je vais me donner le peine de vous envoyer à tous ce que tu demandes, html/css/js, bien que css ne me semble pas indispensable !
En plus, je suis tombé sur un os, suite à mes développements particuliers ! Je vous en fait part aussi !
Alors à demain
Et tout plein de merci
Horace
Voilà ... la page à problème !

<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8" />
	<meta name="keywords"/>
	<title>Page de document</title>
	<link rel="icon" type="image/ico" href="images/favicon.ico" />
	<link rel="stylesheet" type="text/css" href="archives.css" />
<!-- Ici le script JS -->
	<script type="text/javascript" src="js/addsource.js"> </script>
	
</head>

<body>

	<div class="global">
<!-- Conteneur de toute la page -->
<!-- Entête -->
		<header class="entete">
			<h1><span id = "libelle"></span>
			</h1>

			<h2>du : <span id = "date"></span>
			</h2>

		</header> 	
		
<!-- Fin d'en-tête -->
<!-- Fin du conteneur de toute la page -->

		<div class="img">
		source : <span  id = 'source'></span>
		retour : <span  id = 'retour'></span>
		<p>	  <img src ></p>
		</div>

		<footer class="pied">
			<!-- Pied de page -->
			<pre><a href = "pagen.php?titre=Société+de+Développement">Retour aux documents</a>                                      			<img src="images/sceau.png" Width="70" Height="70" alt= "sceau" /></pre>
		</footer> <!-- Fin du pied de page -->

<!-- Fin du conteneur de toute la page -->
</div>
	<div>
	<script type="text/javascript">window.onload = addsource();</script>
	</div>

</body>

</html>

Le retour de cette page :

<a href = "pagen.php?titre=Société+de+Développement">

est en dur.
Mais il se trouve que cette page peut être appelée par un autre page que pagen.php, et avec d'autres paramètres, ce qui fait qu j'ai besoin de ces deux variables,

window.location.pathname
window.location.search

en provenance de la page appelante.
pour retourner à la page précédente.
A charger dans ce script JS

	function addsource()
	{
		var parametres = location.search.substring(1).split("&");
		var temp = parametres[0].split("=");
		l = unescape(temp[1]);
		l = l.replace(/\+/g,' ');
		var dat = l;

		let jour = dat.substr( -2);
		jour;
		let mois = dat.substr(3, 2);
		mois;
		let siecle = '20';
		siecle;
		let annee = dat.substr(0, 2);
		annee;
		var datec = jour + ' ' + mois + ' ' + siecle + annee
		document.getElementById("date").innerHTML = datec;
		
		var temp = parametres[1].split("=");
		d = unescape(temp[1]);
		d = d.replace(/\+/g,' ');
		var cle = d;
/*		document.getElementById("cle").innerHTML = cle; */
		
		var temp = parametres[2].split("=");
		c = unescape(temp[1]);
		c = c.replace(/\+/g,' ');
		var texte = c;
		document.getElementById("libelle").innerHTML = texte;

		var temp = parametres[3].split("=");
		e = unescape(temp[1]);
		e = e.replace(/\+/g,' ');
		var ext = e;
/*		document.getElementById("ext").innerHTML = ext; */
		
		var source = 'documents/' + dat + cle + texte + ext;
		document.getElementById("source").innerHTML = source;		
	};

Et ainsi j'aurai la source de mon image, et les paramètres de retour.
Merci de te pencher là-dessus !
Et j'aurai du ajouter ceci :

/* On cahe la <form */
	window.onload = function() {cache('forme');};


	var ObjSelec = null;

/* On selectionne une ligne dans la table */
	function SelectLigne(obj)
	{
	obj.className = "selection";
 
	if (ObjSelec!=null)
	{
		ObjSelec.className = "defaut";
		ObjSelec = obj;
	}
	else
	{
		ObjSelec = obj;
	}
	chargeforme();
	}

/* On charge la <form */
	function chargeforme()
	{
		document.forms.maforme.elements.date.value = ObjSelec.children[0].innerHTML;
		document.forms.maforme.elements.cle.value = ObjSelec.children[1].innerHTML;
		document.forms.maforme.elements.libelle.value = ObjSelec.children[2].innerHTML;
		document.forms.maforme.elements.ext.value = ObjSelec.children[3].innerHTML;
/* On montre la <form */
 		montre('forme');
	}

	function cache(addr) {document.getElementById(addr).style.visibility = "hidden";}
	function montre(addr) {document.getElementById(addr).style.visibility = "visible";}

qui est le script qui charge dans la page appelente
H.
Meilleure solution
Voilà ... voilà !
A force d'à force, je suis arrivé au but !
Pas simple, mais ça marche.
Donc ce post est résolu ... et j'ai beaucoup appris !
Merci à tous ceux qui ont pris le peine de lire mon poste et de me suggérer des solutions !
H.
Avec mes excuses, je n'ai pas donné ma solution !
Que voilà !

/* On selectionne une ligne dans la table */
	function SelectLigne(obj)
	{
	obj.className = "selection";
 
	if (ObjSelec!=null)
	{
		ObjSelec.className = "defaut";
		ObjSelec = obj;
	}
	else
	{
		ObjSelec = obj;
	}
	nompage();
	chargeforme();
	}

/* On charge la <form */
	function chargeforme()
	{
		document.forms.maforme.elements.date.value = ObjSelec.children[0].innerHTML;
		document.forms.maforme.elements.cle.value = ObjSelec.children[1].innerHTML;
		document.forms.maforme.elements.libelle.value = ObjSelec.children[2].innerHTML;
		document.forms.maforme.elements.ext.value = ObjSelec.children[3].innerHTML;
		document.forms.maforme.elements.retour.value = retour;
/* On montre la <form */
 		montre('forme');
	}
	
	function nompage()
	{
		var ret = window.location.pathname;
		ret = ret.split("/");
		ret = ret[ret.length - 1];

		var param = window.location.search;
		var mot = param.split('&');
		alert (mot[0]);
		alert (mot[1]);
		tout = (mot[0]) + '&' + (mot[1]);
		alert (tout);
		var param = tout;
		retour = ret + param;
	}

	function cache(addr) {document.getElementById(addr).style.visibility = "hidden";}
	function montre(addr) {document.getElementById(addr).style.visibility = "visible";}

J'ai laissé les 'alert' qui ne sont là que pour test !
Avec encore tous me remerciements
H.