2010-07-01 6 views
0

En PHP, dans un CMS particulier j'utilise un champ personnalisé, qui fonctionne comme google suggèrent.Accéder à du texte dans un champ placé par JS, via PHP

Comme dans, pour chaque lettre que je tape une requête SQL est effectuée et les enregistrements correspondants sont affichés. Lorsque vous cliquez sur un enregistrement, il remplit le champ avec cet enregistrement.

Je suis à peu près certain que tout cela est fait avec JavaScript.

J'ai besoin de savoir comment je peux accéder au contenu résultant de ce champ, avec le texte placé par JS, avant qu'il ne soit soumis afin que je puisse l'exploser().

Le CMS que j'utilise utilise mootools, donc une solution basée sur mootools serait idéale.

+0

essayez freelancer.com ou poster du code qui est «presque là» :) pour accéder à un champ dans mootools, utilisez 'document.id (" id "). Get (" value ");' –

+0

Je n'ai pas de code c'est presque là parce que je ne sais pas par où commencer. J'ai besoin de prendre le contenu du champ et le mettre sur des champs cachés et enregistrer dans le reste de la base de données. Peut-être que j'ai besoin de modifier la requête elle-même afin que je puisse la copier dans des champs cachés, donc je ne dois pas essayer d'y accéder après. – Jacob

+1

alors vous devez commencer par poster le balisage html sur la page en question (en particulier le formulaire/les champs qui vous intéressent) ainsi que tout javscript qui peut être lié à cela. essayez de construire un pseudo-modèle sur http://www.jsfiddle.net -abstract et concentrez votre problème de base (par exemple, manipuler un formulaire via ajax et lire une valeur de champ, l'exploser, créer des champs cachés et les remplir avec des données antérieures soumettre). Vous pouvez même simuler la recherche, etc. PUIS quelqu'un sera disponible pour aider, ne peut pas s'attendre à ce que les gens donnent des conseils totalement génériques et offrent des solutions complètes à l'improviste. –

Répondre

-1

Vous pouvez essayer d'utiliser JS pour envoyer le champ sur un événement (onkeyup?) À votre script PHP. Après cela fait partie, stocker le résultat en tant que variable de session et vous pouvez récupérer cela plus tard. Essayez d'utiliser la fonction get de jquery.

Était-ce votre question?

0

(Cette réponse suppose que vous avez le contrôle sur le balisage de vos formulaires (la forme qui nécessite une chaîne « explosion » avant de soumettre) et/ou vous sentez à l'aise bricoler avec ce plug-ins que vous utilisez.)

d'abord, assurez-vous que vous ne soumettez pas votre formulaire en utilisant un bouton de soumission réel(). Nous devrons soumettre le formulaire en javascript après avoir manipulé le contenu du champ. Ensuite, assurez-vous que votre boîte de saisie (celle dont vous récupérez le texte) et vos entrées cachées ont des identifiants uniques. Cela rendra plus facile d'interroger le DOM pour les données dont nous avons besoin.

l'intérieur de votre forme, à la place d'un bouton d'envoi « réel », créer un bouton de formulaire:

<form action="something.php" name="myform"> 

    <input type="hidden" id="hiddenItem"> 
    // SOME STUFF 

    <input type="text" id="autocomplete_field" value="whatever"/>   

    // SOME OTHER STUFF 

    <input type="button" value="Submit" onclick="processForm(this)"/> 

</form> 

Ensuite, écrire une fonction javascript pour traiter la chaîne et soumettre le formulaire:

processForm = function(el){ 

    text = $('autocomplete_field').get('value'); 

    // Lets assume the strings separates words (what you're exploding apart) using spaces 
    // something like 'DOGS CATS BIRDS PETS' 

    var array = text.split(' '); 

    // returns ['DOGS','CATS','BIRDS','PETS'] 

    $('hiddenItem').set('value',array[0]); 

    // #hiddenItem now has the value 'dogs' 

    //SUBMIT THE FORM 
    el.getParent('form').submit(); 

}; 

Espérons que cela aide!