2009-09-12 7 views
0

J'ai 1 formulaire de recherche principal avec un bouton de soumission et plusieurs formulaires de recherche secondaires avec des boutons de soumission. Ce que je voudrais faire est quand je saisis du texte et que je clique sur le bouton de soumission du formulaire de recherche principal, le même texte est copié dans tous les formulaires de recherche secondaires et tous les boutons d'envoi des formulaires de recherche secondaire obtiennent frapper automatiquement.Un clic pour déclencher plusieurs formulaires de recherche?

Le code HTML pour le secteur Earch formulaire ci-dessous:

<form action="query.php" method="get"> 
Search: <input type="text" name="item" size="30"> 
<input type="submit" value="send"> 
</form> 

L'une des différentes formes de recherche secondaires est indiqué ci-dessous:

<FORM action="http://www.dpbolvw.net/interactive" method="GET" target="_blank"> 
<div style="float: left; padding: 0 3px 0 0;"> 
<INPUT type="text" name="src" size="9" 
value="<?php 
$input = $_GET['item']; 
echo $input;?>"          style="width: 110px; height: 22px;margin:0; padding: 0; font-size:140%;"> 
</div> 

<div style="float: left; padding: 0 3px 0 0;"> 
<input type="image" name="submit" value="GO"       src="http://images.guitarcenter.com/Content/GC/banner/go.gif" 
alt="Search" style="font-size:140%"> 
/div> 

<input type="hidden" name="aid" value="1234"/> 
<input type="hidden" name="pid" value="1234"/> 
<input type="hidden" name="url" value="http://www.guitarcenter.com/Search/Default.aspx"/> 
</form> 

Notez que le code php que je mets dans la champ "valeur" du formulaire de recherche secondaire:

<?php 
$input = $_GET['item']; 
echo $input;?> 

Ceci copie automatiquement le texte que j'ai entré dans le formulaire de recherche principal dans le formulaire de recherche secondaire. J'ai donc compris comment faire cela. Le problème est de "simuler" une touche "Entrée" ou un clic sur le bouton "GO" avec la souris sur le formulaire de recherche secondaire lorsque l'utilisateur appuie sur la touche Entrée ou appuie sur le bouton "ENVOYER" avec la souris sur le formulaire de recherche principal.

Nous vous remercions de votre compréhension!

Répondre

0

Jetez un oeil à l'événement submit() dans jQuery. Cela va être votre clé.

Je suppose que vous prévoyez de soumettre via ajax? Sinon, c'est futile.

Ainsi, vous pouvez faire quelque chose comme this-

Offrez toutes vos formes une certaine classe, nous allons l'appeler « ajax_search_forms ». Alors maintenant, vous pouvez réellement vous connecter à l'événement submit.

$('.ajax_search_forms').submit(function(){ 
    var search_string = $('input[name=src]').val(); 
    $('.ajax_search_forms').each(function(){ 
    $.ajax({ 
     url : $(this).attr('action'), 
     data : 'search_string=' + search_string, 
     success : function(html){ 
      // Do something with the result 
     } 
    }); 
    }); 

    // Return false is VERY important so that the form submission does not continue 
    return false; 
}); 
+0

Brandon, Je ne suis pas sûr que je comprends ce que vous dites.Pourriez-vous me dire exactement ce que je dois faire en détail? Est-ce que je veux ajouter class = "ajax_search_forms" à la balise HTML FORM? Est-ce que le code javascript ci-dessus est le code? Je l'ai entouré avec et cela n'a rien fait ... Merci pour plus de détails! :) –

+0

Le code ci-dessus est un code JS, construit au-dessus de la bibliothèque jQuery, que vous auriez besoin de télécharger et d'inclure dans votre site. Ensuite, vous devrez ajouter la classe ajax_search_forms à tous vos formulaires. Ensuite, la soumission du formulaire déclenchera toutes les soumissions de formulaire. –

0

Je ne suis pas sûr de ce que le point de ce serait, Il semble que tous ces sont des formulaires de recherche tous pointant vers des sites différents. Les navigateurs Web ne le permettent pas. Ils peuvent naviguer sur une page à la fois. Lorsque vous publiez un formulaire sur une page, vous accédez à cette page. Par conséquent, vous essayez de naviguer vers plusieurs pages à la fois. C'est comme essayer d'être à Paris et à Londres en même temps. Je ne vois pas comment votre plan fonctionnera comme vous le décrivez.

Cela dit, vous pouvez utiliser javascript côté client pour appeler

document.forms[0].submit(); 

donc si vous pouvez venir avec un plan qui ne comporte pas essayer d'avoir l'utilisateur de voir tous les différents résultats de la recherche dans une fenêtre , vous pouvez essayer ceci sur votre première forme ...

<form action="query.php" method="get" onSubmit="document.forms(1).Submit();"> 
+0

Salut David, Le but est de soumettre le texte de recherche à différents sites Web automatiquement. Ainsi, à partir de la boîte de recherche principale, l'utilisateur tape le texte et clique sur le bouton «Soumettre». Ensuite, cette chaîne de texte est automatiquement envoyée à plusieurs sites Web en utilisant leurs propres formulaires de recherche secondaires. J'ai essayé votre code et il ne simule pas une frappe "entrée" ou un clic de souris sur les formulaires de recherche secondaires. Pouvez-vous s'il vous plaît expliquer plus? –

0

Vous devriez utiliser AJAX (JQuery) comme Brandon suggéré. Lire http://docs.jquery.com/Events/submit

Exemple:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
        "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 

    <script> 
    $(document).ready(function(){ 

    $("#submit").click(function() { 

//Do you stuff here like triggering other submits 
//Like: 
$("input#submit2").click(); 
$("input#submit3").click(); 

     return false; 
    }); 

    }); 
    </script> 
</head> 
<body> 
<form action="javascript:alert('success!');"> 
    <div> 
     <input type="text" /> 
     <input type="submit" id="submit" /> 
    </div> 
    </form> 

<form > 
    <div> 
     <input type="text" /> 
     <input type="submit" id="submit2" /> 
    </div> 
    </form> 

<form > 
    <div> 
     <input type="text" /> 
     <input type="submit" id="submit3" /> 
    </div> 
    </form> 

</body> 
</html> 
Questions connexes