Avatar billede hanibald Mester
29. februar 2016 - 20:54 Der er 8 kommentarer

php ajax via a-tag

I en liste dannet med en while-løkke har jeg  knyttet et <A-tag til hver 'echo'-linie.

A-tagget har tilknyttet et enkelt nummer som URL-parameter. Nummeret vil være forskelligt fra linie til linie baseret på $dokid2.

Mit problem er, at jeg gerne vil bruge <a- tagget til at starte en ajax-rutine ved hjælp af jQuery get() uden at påvirke aktuelt skærmbillede.

A-tagget opbygget i while-løkken indeholder bl.a.

id="dokid" href="#?dok_id=' .$dokid2 . ' "       


Mit foreløbige jQuery-event ser sådan ud:

<script type="text/javascript">
$(document).ready(function(){
    $("dokid").click(function(){
        $.get( "tags_ajax.php", { dok_id: $dokid2} );
    });
});
</script>

Kan det overhovedet lade sig gøre at starte eventet med et a-tag og uden at påvirke den aktuelle HTTP-session?

Hvis ja. Hvilke justeringer af ovennævnte vil da være nødvendige?

Hvis nej. Er der da andre muligheder der kan være relevante?
Avatar billede jakobdo Ekspert
29. februar 2016 - 21:11 #1
mener du "starte" ?
PT starter det jo først, når du "klikker" på det.
Så det afvikles ikke automatisk.
Avatar billede hanibald Mester
01. marts 2016 - 00:21 #2
Der skal startes, når brugeren trykker på et <a-tag på den enkelte uddata-linie.
Avatar billede Slater Ekspert
01. marts 2016 - 07:57 #3
Jeg må indrømme, jeg heller ikke helt forstår spørgsmålet. Det lyder som noget der sagtens kan lade sig gøre, men jeg er ikke helt med på, hvad der skal ske, og når der klikkes på hvad.

Med mindre... er din udfordring simpelthen, at der er forskellige a-tags med forskellige dokid2'er, og når man klikker på et a-tag, så skal den sende netop det tags dokid2 med i AJAX request'et? Det er let nok, men jeg ved ikke om jeg forstår det korrekt.

Det at starte et AJAX kald ud fra et a-tag uden at "påvirke http sessionen", som du siger, er jo nærmest definitionen på AJAX. Det burde allerede ske med den kode du har.
Avatar billede jakobdo Ekspert
01. marts 2016 - 09:33 #4
Jeg har forsøgt lidt her:

https://jsfiddle.net/s5uopmbj/1/

Dog er jeg usikker på hvad der skal ske i dit "ajax" kald.
Men håber det måske kan få dig lidt videre ?
Avatar billede hanibald Mester
02. marts 2016 - 14:16 #5
Lad mig prøve at beskrive det tænkte forløb mere detaljeret:


Til hver enkelt linie i udskriften knyttes et <a-tag. Det
Har selektoren: id="dokid"
Linker til programmet: #
Har URL-parameter navn: dok_id
Har URL-parameter værdi: heltal, der er forskelligt for hver linie i udskriften og dermed for hvert <A-tag.



I eventscriptet skal:
Lyttes på forekomsten af "dokid" som selektor
Program, der skal kaldes: "tags_ajax.php" indsættes som get(url,)
Som get(,data) indsættes hhv.
"dok_id" og
URL-parameter værdi: Skal hentes fra <A-tag
get(,,,type)skal være en tekststreng.

Event-scriptet skal:
Starte program "tags_ajax.php" og muliggøre:
    if ( isset ($_GET['dok_id']))
    {
    $dok_id = $_GET['dok_id'];
    ..etc..

Mit problem er at få eventscriptet skruet sammen så det snakker sammen med begge sider.
Avatar billede jakobdo Ekspert
02. marts 2016 - 15:18 #6
Jeg tror du overkomplicere det. :o)
Beskriv hvad tags_ajax.php skal gøre præcist, så tror jeg jeg kan lave en løsning til dig.
Avatar billede hanibald Mester
04. marts 2016 - 22:12 #7
tags_ajax.php skal kunne

Med dok_id (hentet fra <A-tagget) skal der laves opslag i mange-mange tabellen doktags med dok_id for at opsamle de tag_id, der er knyttet dertil (typisk 1-10).

Med de opsamlede tag_id skal der laves opslag i tabellen tags for at opsamle de tagnavne (tag_navn), der knytter sig til de opsamlede tag-id.

De opsamlede tagnavne skal vises (a-z) i lodret liste i en alert.


PS: Jeg mener at have fundet noget her om håndtering af URL-parametre: http://stackoverflow.com/questions/7544160/how-to-send-parameters-with-jquery-get


PS: Jeg har nu efter en del søgen fundet en nyere bog om (kun) jQuery / Ajax. Håber den kan bringe mig over det døde startpunkt.
Avatar billede jakobdo Ekspert
04. marts 2016 - 22:56 #8
Men hvis vi "bare" snakker at få nogle værdier til ajax.php, så er det "nemt" nok.
Vi snakker du looper et resultat, hvor der er et ID, der så skal være i et "link", der når du klikker på det, skal lave et ajax kald med denne værdi, right ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester