Avatar billede frostholm Praktikant
18. november 2010 - 11:53 Der er 1 løsning

Jquery php og multiple divs

Kan nogen hjælpe mig et problem jeg har med jquery og php.

jeg har følgende HTML

<head>
    <link rel="stylesheet" href="/style.css" type="text/css">
    <title>jQuery Search Demonstration</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){

            $(".keywords").keyup(function() {

                    $.post("searchitems.php", { keywords: $(".keywords").val() }, function(data){
                        $("div#itemsdiv").empty();
                        $.each(data, function(){
                            $("div#itemsdiv").append( this.itemTypeImageTag + " " + this.linkurl + "    (" + this.maincat + " =>" + this.typetitle + ")<br>");
//                            /images/products_status_green.png
                        });
                    }, "json");
                   
                    $.post("searchcats.php", { keywords: $(".keywords").val() }, function(data){
                        $("div#catsdiv").empty()
                        $.each(data, function(){
                            $("div#catsdiv").append(this.itemTypeImageTag + " " + this.linkurl + "(" + this.antal + ") <br>");
                        });
                    }, "json");
            });
        });
    </script>

</head>
<body>
<input type="text" name="search" class="keywords">
<br></br><br></br>
<div id="searchdiv">
    <div id="itemsdiv">
    </div>
    <div id="catsdiv">
    </div>
</div>
</body>
</html>

Jeg ønsker at mine 2 jquery kald til mine phpsider skal samles i et kald til den samme phpside, men det returnerede data skal så fordeles i de 2 respektive div tags.

Jeg er ikke klar over hvordan mit jquery skal se ud samt, hvad mit php script skal returnere før det kan lade sig gøre.

Med venlig hilsen
Michael
Avatar billede BufferUnderrun Nybegynder
21. januar 2011 - 00:10 #1
Den nemmeste måde at sende forskellig data mellem jQuery og PHP, er ved at pakke det i JSON.

Hvis du f.eks. vil sende to forskellige stumper data til PHP kan du bruge:

$.post("fil.php", { "var1": "value1", "var2": "value2" }, function(data) {});

Ovenstående sender et objekt ind til PHP, som har to key/value par. Dem henter du således i PHP:

echo $_POST["var1"]; // Skriver "value1"
echo $_POST["var2"]; // Skriver "value2"

Hvis du så vil returnere data til jQuery fra PHP, skal PHP-siden bare skrive dette ud:

echo "{ \"phpVar1\": \"phpValue1\", \"phpVar2\": \"phpValue2\" }";

I den function(data){} som jeg skrev ovenfor i returkaldet fra $.post skal der så stå følgende:

{
alert(data.phpVar1); // Prompter "phpValue1"
alert(data.phpVar2); // Prompter "phpValue2"
}

Jeg håber dette kan få dig lidt i gang - du kan bare fylde uendeligt med key/value par på sådan et JSON objekt adskilt af komma.
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
Kurser inden for grundlæggende programmering

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