Javascript et submit dans nouvelle fenêtre

Bonjour,
dans ma page j'ai une case de type input et un bouton de telle sorte à ce que quand on écrive du texte dans la case, et qu'on clique sur le bouton, ça lance une recherche sur un site.
Ça fonctionne bien mais il y un un probleme : la recherche se lance dans la meme page hors je voudrais qu'elle se lance dans une autre page.

Voici les codes que j'utilise.

Ma case input :
<form onsubmit="document.location.href='monsite/search/'+valeurdemacase.value; return false">          
<input id="text" autocomplete="off" name="valeurdemacase" type="text" />          
</form> 


Mon bouton :
<td class="bouton" onclick="document.location.href='monsite/search/'+document.forms[0].elements['valeurdemacase'].value; return false;">monsite</td>          
<td> 


Mon code JS valeurdemacase :
window.onload = function() {          
     document.forms[0].elements['valeurdemacase'].focus();          
 };


Seriez vous comment faire ?
(J'ai essayé de remplacer les document.location.href= par des window.open( mais ça ne fonctionne pas)

Merci.



On s'ennuie pas avec l'informatique :)

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Merci mais comment faire ? car je travail pas avec des lien a href mais du onclick pour pourvoir utiliser mon JS
    1. essayes avec le target dans la balise cliquée:

      <td class="bouton" onclick="document.location.href='monsite/search/'+document.forms[0].elements['valeurdemacase'].value; return false;" target="_blanck" >monsite</td>


      le onsubmit= "..." dans la balise <form ne sert a rien car le click ne postera pas le formulaire (pas de submit)
      1. une autre solution radicalement différente, est ce que tu peux t'en inspirer ?

        <script type="text/javascript">
        /*cette fonction JS sert a verifier que l'on a bien sisi qq chose avant de lancer la recherche, si oui elle retourne true ce qui autorise l'envoi du formulaire, sinon elle renvoie false et le form ne part pas (plus mesage d'alerte)*/
        
        function verif_vide(id_input){
        	var input_saisie = document.getElementById(id_input);
        	if(input_saisie.value.length == 0 ){
        		alert("Vous devez saisir une valeur dans le champ rechercher !");
        		return false;
        	}
        	return true;
        }
        </script>
        <?php
        if(isset($_POST['rechercher'])){
        	$valeur_recherchee=$_POST['valeurdemacase'];
        	///TEST
        	
        	echo "Vous avez saisi: <b>".$valeur_recherchee." </b>";
        	//et la tu fais ta recherche dans ton site et tu affiches
        }
        //ce else si tu ne veux pas que l'imput de saisie s'affiche à nouveau après la recherche, sinon tu le supprime
        else{
        	//affichage du formulaire de saisie
        ?>
        <form name="form_recherche" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" target="_blanck" onsubmit="return verif_vide('texte_saisi')" >          
        <input id="texte_saisi" autocomplete="off" name="valeurdemacase" type="text" value="" />
        <input id="bouton_rech"  class="bouton" name="rechercher" type="submit" value="mon site" />          
        </form> 
        
        <?php
        } //fin du else
        ?>
        1. Contributeur
          Sujet difficile : cela dépend surtout des choix du navigateur de l'internaute... On ne peut pas forcer tous les navigateurs à ouvrir les liens dans de nouvelles fenêtres...

          Pas de solution miracle donc...
          1. Salut, c'est pas forcement nouvelle fenêtre hein, ça peut être nouvel onglet aussi.
          2. Contributeur
            Oui j'imagine bien, mais encore une fois, tous les navigateurs ne gèrent pas les fenêtres / onglets de la même manière...
            Le plus simple resterait une popup de taille max (100%, 100%) mais adios la barre de menu.