2009-11-24 10 views
1

J'essaie d'ajouter un champ de recherche à ma page pour diriger les utilisateurs vers la page de résultats de recherche sur un site différent. J'ai l'action et toutes les autres données requises dans des champs cachés, pour m'assurer qu'il est publié correctement. Le problème est qu'ils collent sur des données supplémentaires au terme de recherche, ce qui en fait un type de champ de recherche avancée. Donc, au lieu d'être searchTerm = X, il attend searchTerm = Locale (en): FQE = (KE, Aucun, 11) MY_SEARCH_TERM: Et: LQE = (AC, Aucun, 8) fulltext $Ajout de données à un champ de saisie

Comment puis-je ajouter des données supplémentaires autour de mon terme de recherche, sans avoir à cliquer sur une page intermédiaire pour effectuer la concaténation?

Voici ce que j'ai jusqu'à présent:

<form action="http://vendors.address/searchresult.do" method="post"> 
    <input type="hidden" name="type" value="search"> 
    <input type="hidden" name="sort" value="DateDescend"> 
    <input type="text" name="queryId"> 
</form> 

Et je besoin de quelque chose qui peut donner lieu à ce genre de chose:

<form action="http://vendors.address/searchresult.do" method="post"> 
    <input type="hidden" name="type" value="search"> 
    <input type="hidden" name="sort" value="DateDescend"> 
    <input type="hidden" name="queryId" value="Locale%28en%2C%2C%29%3AFQE%3D%28KE%2CNone%2C11%29MY_SEARCH_TERM_HERE%3AAnd%3ALQE%3D%28AC%2CNone%2C8%29fulltext%24"> 
</form> 

Toute aide serait appréciée.

Répondre

1

Vous pouvez utiliser Javascript pour faire ceci avec un champ de recherche caché. En jQuery, ce serait quelque chose comme:

$("input[name='queryId']").keyup(function() { 
    $("#hiddenField").val("Locale%28en%2C%2C%29%3AFQE%3D%28KE%2CNone%2C11%29" + $(this).val() + "%3AAnd%3ALQE%3D%28AC%2CNone%2C8%29fulltext%24"); 
}); 

Mais il serait rompu sans JS. Edit: Oui, battu, n'a pas actualisé pour les réponses.

+0

Espérait ne pas avoir une réponse JS, mais ce n'est pas de ta faute. Si cela ne peut pas être fait en PHP, cela ne peut pas être fait. –

0

Deux choses que je peux penser:
1. Il suffit de mettre les paramètres régionaux et d'autres choses dans les entrées cachées:

<input type="hidden" name="locale" value="en" /> 

2. Utilisez javascript pour soumettre le formulaire (ce qui est une idée horrible - vous ne veux pas que votre site se brise si Javascript est désactivé).

+0

Je pense que ce que l'affiche demande, c'est un moyen de concaténer les paramètres régionaux et d'autres données, ainsi que la requête réelle, dans un seul champ (comme prévu par ce qu'ils utilisent sur le backend). –

+0

S'ils ne veulent pas atteindre une URL intermédiaire qui fera la concaténation pour eux, alors Javascript est ce qui reste. Oui, cela ne fonctionnera pas pour certains utilisateurs. –

+0

Oui j'ai compris ce qu'ils voulaient, mais Javascript semblait être une si mauvaise idée que je devais proposer une alternative. –

1

Vous pouvez utiliser JavaScript pour effectuer la concaténation avant la soumission du formulaire. Il existe plusieurs façons de le faire, mais voici l'approche recommandée:

Comme je ne vois pas de bouton de soumission, je suppose que vous comptez vos utilisateurs pour appuyer sur la touche Entrée afin de soumettre le formulaire. écouter l'événement onSubmit et concaténer les informations supplémentaires avant l'envoi du message au serveur.

Donnez l'élément forme un id:
<form action="..." method="post" id="searchForm">

et donner le champ de saisie de texte d'un id:
<input type="text" name="queryId" id="queryId">

Ajouter ce bloc de script après la forme

 
<script> 
document.getElementById("searchForm").onSubmit = function(){ 
    var queryField = document.getElementById("queryId"); 
    queryField.value = "prepend_data" + queryField.value + "append_data"; 
    return true; 
} 
</script> 

ou vous pouvez utiliser JQuery (s'il vous plaît faire), vous pouvez laisser tomber n'importe où:

<script> 
$(function(){ 
    $("#searchForm") 
    .submit(
     function(){ 
     $("#queryId).val("prepend_data" + $(this).val() + "append_data"); 
     } 
    ); 
}); 
</script>

espoir qui aide

Questions connexes