Créer des lien en ajax [Résolu]

Signaler
Messages postés
56
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2010
-
Messages postés
56
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2010
-
bonjour à tous.

Je souhaite réaliser des liens en ajax. ça c'est la partie simple théorique. maisntenant l'autre partie. les liens sont des éléments d'une liste que je crée également.
pour mieux comprendre je vais afficher le code.

///////////////////////////////////////////////////////////////////
function ajax()
    {
    var l1    = f.elements["list1"];
    var l2    = f.elements["list2"];
    var index = l1.selectedIndex;
    if(index < 1)
        l2.options.length = 0;
    else
    {
        var xhr_object = null;
        
        if(window.XMLHttpRequest) // Firefox
            xhr_object = new XMLHttpRequest();
        else if(window.ActiveXObject) // Internet Explorer
            xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
        else
        { // XMLHttpRequest non supporté par le navigateur
            alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
            return;
        }
     
        xhr_object.open("POST", "species.php", true);
        
        xhr_object.onreadystatechange = function()
        {
            if(xhr_object.readyState == 4)
                eval(xhr_object.responseText);
        }
        xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = "family="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
        xhr_object.send(data);
        }
    }
///////////////////////////////// page species.php////////////////////////

header('Content-type: text/html; charset=iso-8859-1');
     
    $mysql_db = @mysql_connect("localhost", "root", "");
    @mysql_select_db("onli");
         $query  "SELECT nom_produit FROM liste WHERE categorie_produit '".$_POST["family"]."';"; 
    $result = @mysql_query($query);
     
    echo 'var o = null;';
    echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
    echo 's.options.length = 0;';
    while($r = mysql_fetch_array($result))
        echo 's.options[s.options.length] = new Option("'.$r["nom_produit"].'");';
     
    @mysql_close($mysql_db);
/////////////////////////////////////////////////////////

donc comme vous pouvez le voir je crée des options dans une liste. les option se crée très bien comme je le souhaiter. maintenant mon soucis et de faire en sorte que mes options devienne des liens options et c'est là que je bug. je n'arrive pas à trouver la bonne syntaxe.

merci à tous de votre futur aide.
bonne fin de matinée

et une victoire de plus pour Mr canard

12 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
    <li>CS</li>
    <li>moi</li>
    <li>moi 1</li>
    <li>moi 2</li>
    <li>moi 3</li>

la seule possibilité à mon humble avis, comme déjà dit.
( adapte le css en fonction de ce que tu veux )
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
Bonjour,

je me disais il raconte quoi notre ami [../auteur/BALOC/1470999.aspx baloc]???
ajax  n'est pas un langage ? on ne peut rien créer avec !
des liens ça se fait en html, php, javascript....

bon, à priori, tu crées des options dans un select
curieux d'ailleurs de passer par du javascript pour le faire ????
pourquoi ne pas créer directement les options ?
echo '<option>'.$r["nom_produit"].'</option>';
en "étant"  dans les select ?

des liens options ?
tu voudrais qu'une option se comporte comme un lien ?
une option c'est du texte
donc soit tu passes par du javascript pour récupérer
       ce texte et provoquer un changement de page
soit tu crées des vrais liens entre <li> et </li> par exemple,
dans un div avec height:taille voule; overflow:auto

Cordialement [mon Site] [M'écrire] Bul
Messages postés
56
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2010

bonjour,
il est vrai que ajax est un regroupement de langage. mille excuses pour cela.

Créer les options directement??
    c'est à dire? se placer dans list 2 et les crées?
pourquoi pas.

mais en ce qui concerne les liens je veux réaliser des liens en même temps que la création des options. c'est casiment obligatoire.
Je m'explique. j'ai deux liste déroulante, l'une à côté de l'autres. la première est renseigner en dur. la suivante fait appel au choix de la list précédente avec une recherche dans la base de donnée.

une fois le résultat de la requete trouvé, je crée les options. que je voudrais leur permettre d'être des liens.

et une victoire de plus pour Mr canard
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
ah.. les select liés ?
ch'tiot exemple ici :[http://marcel-bultez.chez-alice.fr/documents/ADSL/ADSL.php [ADSL] A propos Des Select Liés]</gras>

mais dans une option c'est du texte, donc tu ne peux pas
y mettre directement un lien. il faudra faire comme je
te disais dans le 1er message.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
Messages postés
56
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2010

si je ne peux mettre aucun lien c'est fichu...><

ou alors dans un premier temps, je peux mettre une valeur à l'option?

et merci pour tes conseils.

et une victoire de plus pour Mr canard
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
ben oui....
<option value="une url">texte affiché</option>
et en javascript tu récupères le .value et tu en fais ce que tu veux
ou je te disais

[url lien]</li>
     <li>[url lien]</li>

     ....    
Messages postés
56
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2010

bonjour

après quelques recherches, il est possible de créer des liens. il faut crée un autre noeud à chaque option, plus d'info quand j'aurais réussi.

et une victoire de plus pour Mr canard
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
avant de te lancer, comment ferais-tu en html,
pour mettre un lien dans ( ou avec ) une option
qui soit directement cliquable ?
en javascript tu ne pourras rien de plus.
@+
Messages postés
56
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2010

en faite, si je veux pouvoir réaliser un lien dans une option, je dois dans un premier tant crée l'option. et dans un deuxième temps créer le lien. Mais comment faire:

on peut créer des noeuds avec la fonction appendchild. donc le but de la manipulation sera de créer un noeud option, puis pour chaque option crée un noeud contenant l'élément a et de propriété href.

Je pense que ce n'est pas trop bête comme solution. la finalité sera d'obtenir

<option> le nom </option>

et une victoire de plus pour Mr canard
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
10
c'est ce que je te dis : essaye en html, avant de te lancer
<select>
    <option>le nom</option>   
</select>
et dis nous.
Messages postés
56
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2010

bon ba j'avais tord. Merci d'avoir passer un peu de temp pour m'aider.

et une victoire de plus pour Mr canard