Page 1 sur 1

[RESOLU] OnSubmit dans une nouvelle page noovel onglet

Posté : 18 févr. 2020, 14:53
par Serenodo
Bonjour,
J'utilise pour des recherches personnelles, sur un site hébergé sur mon pc , un script JS moteur de recherche.
J'aimerai ne pas perdre ma page d'index quad je lance une recherche.
J'aimerais que le résultats de la recherche s' ouvre dans une page de mon site et dans un nouvel onglet.
Je n'y connais rien, j'ai déjà mis plus de deux heures pour installer le moteur de recherche et comprendre comment le mettre à jour.
Je vous joint le code.

Code : Tout sélectionner

<head>

<link href="css.css" rel="stylesheet" type="text/css" />

<title>SITE ECRITOIRE PERSO NE PAS DIFFUSER</title>

    <script src="Ecritoire\data.js"></script>
    <script type = 'text/javascript'>
<!--
/* FUNCTION INCLUDE */



	function afficher()
	{
		document.writeln( '<h3><a target="_blank" rel="noopener" href=' + this.url + '>' + this.titre
		+ '</a></h3><p class=noindent>' + this.keyword + '<br><a target="_blank" rel="noopener" href=' + this.url + '>' + this.url + '</a></p>\n' );
	}

	function Stock( titre_in,keyword_in,url_in )
	{
		this.titre		= titre_in;
		this.keyword	= keyword_in;
		this.url		= url_in;
		this.afficher	= afficher;
	}

	

/* Cette fonction réécrit entièrement la page web pour y afficher les résultats */
	function rechercher( chaine )
	{
		
		var trouved = 0;
		chaine = chaine.toUpperCase();
		var data = new Array();
		store( data );

		document.writeln( "<html><head><title>Résultats de la recherche</title><link href='code.css' rel='stylesheet' type='text/css'></head>" );
		document.writeln( "<body class='article'><div class='alone'>" );
		document.writeln( "<h1>Résultats de la recherche >>>>  "+chaine+"</h1>" );

		for( var i=0; i<data.length ; i++ )
		{
			if(( data[i].titre.toUpperCase().indexOf( chaine ) != -1 )
			|| ( data[i].keyword.toUpperCase().indexOf( chaine ) != -1 )
			|| ( data[i].url.toUpperCase().indexOf( chaine ) != -1 ))
			{
				data[i].afficher();
				trouved ++;
			}
		}

		if( !trouved )
		{
			document.writeln( "<p style='color: red; font-weight: bold;'>Aucune réponse n'a été trouvée pour ce mot clé dans la GED SSPG. </br></br> besoin d'une procédure <a href=Ecritoire/creation de_procedure.oft'> <b>mail </b></a>avec les bonnes infos</p>");
		}

		document.writeln( "<p style='color: blue; font-weight: bold;'>"+trouved+" réponse(s) trouvée(s) pour le mot-clé "+chaine);
		document.writeln( "</p><hr><form><input type='button' value='Nouvelle recherche ?' OnClick='window.location=\"moteurRecherche.html\"'></form></div>" );
		document.writeln( "</body></html>" );
		document.close();
	}

//-->
	</script>

</head>

<body>
	
	<div id="Header0">
	<center>
	<img src="Img/logoScc2.png"/>
	</center>
	tata
	</div>
	
	<div id="Header2">
		
		<div class="HeaderRecherche">
			
			<center>
				<form name="rech" OnSubmit="rechercher( document.rech.champ.value );">
				<input type="text" name="champ"    size="70"><BR>
				<input type="submit" name="valide" value="Rechercher">
				</form>


				<noscript><p>
				Votre navigateur ne reconnaît pas le JavaScript, le script de recherche ne pourra pas marcher.
				</p></noscript>
			</center>
			
		</div>
		
	</div>

	<div id="Corps">
	toto
	</div>
	<div id="Footer">
	toto
	</div>
</body>

</html>

et la code pour la recherche DATA.js

Code : Tout sélectionner

function store (data)
{
data[0 ] = new Stock("GUIDE NOUVELLE", "message d'erreur ","Doc/Message_erreur_.docx" );
		data[1 ] = new Stock("GUIDE NOUVELLE", ","Changer_numero_.","Doc/Changer_numero_.txt" );
		data[2 ] = new Stock("GUIDE NOUVELLE", ","article non géré dans la division.","Doc/Article_non_géré_dans_la_division.docx" );
		data[3 ] = new Stock("GUIDE NOUVELLE", ","Combinaison d'article type non autorisé ","Doc/Combinaison.docx");
		data[4 ] = new Stock("Guide ROMAN",   "dépassement budget ","Doc/Depassement_budget.docx");
		data[5 ] = new Stock("Guide ROMAN","présentation des tâches ","Doc/presentation_taches.docx");
		data[6 ] = new Stock("GUIDE POEME","Aucne tâche dans un poeme","Doc/_pas_de_tache.txt");
}
Merci très sincèrement de votre aide.

Re: OnSubmit dans une nouvelle page noovel onglet

Posté : 18 févr. 2020, 16:37
par webmaster
Bonjour

Il faut utiliser l'ouverture de popup avant le document.writeln() des résultats.

Voir l'exemple "Créer un popup tout en JavaScript" du tuto de cette page :
https://www.toutjavascript.com/savoir/savoir15.php3

Re: OnSubmit dans une nouvelle page noovel onglet

Posté : 19 févr. 2020, 08:39
par Serenodo
Bonjour @webmaster,

Merci pour ta réponse.
Je viens de visiter le lien, mais je suis trop nul, et je ne sais pas comment faire.
Faut-il que je créé une page spéciale pour avoir les résultats ?
Et puis comment l'appeler dans le code.
Merci .

Re: OnSubmit dans une nouvelle page noovel onglet

Posté : 20 févr. 2020, 11:17
par webmaster
Bonjour

J'ai repris le script du post initial et mis en place l'écriture dans le popup ici
https://www.toutjavascript.com/user/search-onglet.html

Le résultat de la recherche s'affiche bien dans le popup, sans modifier la page d'origine.

Re: OnSubmit dans une nouvelle page noovel onglet

Posté : 20 févr. 2020, 11:45
par Serenodo
Bonjour @webmaster,

Ce n'est que du bonheur.
J'ai comparé ton code au mien ligne par ligne, et j'ai pu modifier.
Un grand et sincère merci à toi.
:D :shock: :D :D