Avatar billede AnyFellow Mester
18. juni 2012 - 21:53 Der er 7 kommentarer og
1 løsning

Ændre parameter i url i en jquery-funktion

Jeg har en funktion hvor jeg tilføjet "&type=jquery" til min url.


$(function() {
    $(".addShop").click(function(evt) {
        evt.preventDefault();
        $.ajax({
            url: $(this).attr('href') + '&type=jquery',
            cache: false,
            datatype: "json",
            success: function(result){
                shoppingbasket_callback(result)
            }
        });
    });
});


Hvordan skal jeg gøre hvis min url allerede har en type og jeg gerne vil ændre værdien af denne til "jquery"?
Avatar billede olebole Juniormester
19. juni 2012 - 01:44 #1
<ole>

Mon ikke dette vil virke:

$(function() {
    $(".addShop").click(function(evt) {
        evt.preventDefault();
        var sHref = $(this).attr('href');
        if (sHref.indexOf("type=")) {
            sHref = sHref.replace(/type=.*?(\&|$)/, "type=jquery$1");
        }
        else sHref += sHref.indexOf("?")<0 ? "?type=jquery" : "&type=jquery";
        $.ajax({
            url: sHref,
            cache: false,
            datatype: "json",
            success: function(result){
                shoppingbasket_callback(result)
            }
        });
    });
});

/mvh
</bole>
Avatar billede AnyFellow Mester
19. juni 2012 - 19:19 #2
Jeg kan ikke umiddelbart få det til at virke.

Bruger jeg koden som den er i #1, er det som om den dør i scriptet, jeg kan i hvertfald ikke få noget output.

Jeg prøvede at forsimple scriptet, ved at fjerne kontrollen, for at se om det var der det gik galt:
[pre]
$(function() {
    $(".addShop").click(function(evt) {
        evt.preventDefault();
        var sHref = $(this).attr('href');
            sHref = sHref.replace(/type=.*?(\&|$)/, "type=jquery$1");
        $.ajax({
            url: sHref,
            cache: false,
            datatype: "json",
            success: function(result){
                shoppingbasket_callback(result)
            }
        });
    });
});


Nu kører scriptet igennem, men der ændres ikke på 'type'
Avatar billede AnyFellow Mester
19. juni 2012 - 19:34 #3
En rettelse, den forsimplede version kører som den skal.

Jeg havde sat et par ekstra linjer ind i den php-fil scriptet kalder, for at echo alle $_GET-variabler, hvilket virkede fint så længe scriptet ikke virkede.
Avatar billede olebole Juniormester
19. juni 2012 - 19:49 #4
Når du tester den slags, sætter du som det allerførste PHP til bare at udskrive $_POST (eller $_GET) array'et med:

<?php
print_r($_POST);
?>

- og i din JS-kode:

success: function(result){
    alert(result)
}

- så du kan se, om serveren overhovedet modtager, hvad du forventer.

I koden i #1 har jeg lavet en fejl i betingelsen. Der skal stå:

if (sHref.indexOf("type=")>-1) {
Avatar billede AnyFellow Mester
19. juni 2012 - 20:14 #5
Super, så spiller det som det skal.

Tak for hjælpen.

Læg et svar hvis du vil have point :)
Avatar billede olebole Juniormester
19. juni 2012 - 20:27 #6
Ellers tak, du svarer og accepterer as usual  =)
Avatar billede AnyFellow Mester
20. juni 2012 - 08:57 #7
Tak for hjælpen endnu en gang.
Avatar billede olebole Juniormester
20. juni 2012 - 16:30 #8
Selvtak  =)
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