foreach div button

Pagina: 1
Acties:

Onderwerpen

Vraag


  • Profdumbledore
  • Registratie: Juli 2016
  • Laatst online: 16-06 21:35
Mijn vraag
Ik krijg via een json data binnen, voor elke datastring maak ik een div aan met de inhoud van de json, dit doe ik d.m.v. een foreach loop, tevens wil ik in elke div een button zetten die de inhoud van de div kopieert naar een textarea, maar als ik op de button klik wordt de inhoud van de laatst aangemaakte div gekopieert en niet degene waar de knop instaat. Ik denk dat het probleem zit bij de benaming van de div, maar weet zelf niet hoe ik dit kan oplossen, |:( ik zou het dan ook erg waarderen als iemand mij in de goede richting kan helpen.

Wat ik al gevonden of geprobeerd heb
voorbeeldcode:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
foreach ((array)$items as $item)  {
?>
       <div class="class" id="<?php $item ?> "
       <?
       echo $item
      ?>
              <script language="javascript" type="text/javascript">
                    function transfer() {
                        var newtext = " <?php echo $item ?>"
                        document.textarea.detail.value += newtext;     
                    }
               </script>
              <input type="button"  onClick="transfer()">    
</div>


Kortom zou iemand mij kunnen uitleggen wat ik aan dit probleem kan doen _/-\o_
Ik hoop dat ik genoeg info heb gegeven.
Alvast bedankt :)

[ Voor 11% gewijzigd door Profdumbledore op 30-11-2017 21:38 ]

Alle reacties


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Profdumbledore schreef op donderdag 30 november 2017 @ 19:25:
Zou iemand mij hier mij mee kunnen helpen?


Wat ik al gevonden of geprobeerd heb
voorbeeldcode:
Heb je die code gevonden? Of zelf geschreven? Wat heb je precies geprobeerd dan? Heb je al gedebugged? (code tags)? Wat kwam daar uit? Heb je al dingen geprobeerd aan te passen en zo ja, wat en hoe dan? Al-met-al is dit een beetje een Kan iemand even...? topic en daar zijn we hier niet zo happig op ;) Ik zou het dus op prijs stellen als je je topicstart even aanvult met wat informatie zodat 'ie een beetje conform onze Quickstart is :)

Waar ik je wél mee kan helpen is het gebruik van code tags. Let je daar voortaan zelf even op? ;)

Tot slot: Waar hoort mijn topic?
WEB >> PRG

[ Voor 10% gewijzigd door RobIII op 30-11-2017 21:20 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Profdumbledore
  • Registratie: Juli 2016
  • Laatst online: 16-06 21:35
RobIII schreef op donderdag 30 november 2017 @ 21:19:
[...]

Heb je die code gevonden? Of zelf geschreven? Wat heb je precies geprobeerd dan? Heb je al gedebugged? (code tags)? Wat kwam daar uit? Heb je al dingen geprobeerd aan te passen en zo ja, wat en hoe dan? Al-met-al is dit een beetje een Kan iemand even...? topic en daar zijn we hier niet zo happig op ;) Ik zou het dus op prijs stellen als je je topicstart even aanvult met wat informatie zodat 'ie een beetje conform onze Quickstart is :)

Waar ik je wél mee kan helpen is het gebruik van code tags. Let je daar voortaan zelf even op? ;)

Tot slot: Waar hoort mijn topic?
WEB >> PRG
Bedankt voor je reactie, ik heb deze code zelf geschreven, ik heb geprobeerd om de button werkend te krijgen door dezelfde php tag te gebruiken in de div id, ik heb een vermoeden dat ik daar iets fout heb gedaan. Ik weet niet wat jij onder debuggen vat maar ik heb wel gekeken of er fouten inzaten via element inspecteren en die zaten er niet in. Ik heb verschillende dingen geprobeerd zoals een dynamisch div id te gebruiken maar dit verpeste meer dingen dat dat het maakte.
Ik snap ook heel goed dat dit klinkt als een Kan iemand even...? topic, maar ik ben hier nu al ongeveer 5 uur mee bezig geweest en geen vooruitgang geboekt :) En ik hoef niet perse dat iemand mijn code voor me schrijft maar meer een idee geeft hoe ik dat zou kunnen oplossen :>

Mijn topicstart zal ik aanpassen en van die code tags wist ik niet dat die bestonden dus bedankt voor de tip!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 13:59
Als je in je browser de gegenereerde code bekijkt, hoeveel keer zie je een definitie van de functie "transfer" ?
code:
1
2
3
function transfer() {
...
}

Verplaats je nu in de javascript engine .. en bedenk wat je gaat doen als er nu iemand vraagt om "transfer()" aan te roepen ... (keuzes keuzes keuzes).

Nog afgezien of wat er in "$item" zit uberhaupt een mogelijk geldige id is of niet, dat is uit je voorbeeld niet af te leiden.

  • Profdumbledore
  • Registratie: Juli 2016
  • Laatst online: 16-06 21:35
gekkie schreef op donderdag 30 november 2017 @ 21:47:
Als je in je browser de gegenereerde code bekijkt, hoeveel keer zie je een definitie van de functie "transfer" ?
code:
1
2
3
function transfer() {
...
}

Verplaats je nu in de javascript engine .. en bedenk wat je gaat doen als er nu iemand vraagt om "transfer()" aan te roepen ... (keuzes keuzes keuzes).

Nog afgezien of wat er in "$item" zit uberhaupt een mogelijk geldige id is of niet, dat is uit je voorbeeld niet af te leiden.
In de browser kan ik de functie "transfer" niet vinden, de tekst wordt met de functie wel verplaatst dus dat werkt wel.
zelf weet ik ook niet zeker of "$item" een goede id (het werkt wel want de 'divjes' zijn wel zichtbaar op mijn website) is om te gebruiken maar ik zou niet weten wat ik anders zou moeten gebruiken aangezien elk id natuurlijk anders moet zijn en het niet mogelijk is om deze allemaal van te voren schrijven.

  • gekkie
  • Registratie: April 2000
  • Laatst online: 13:59
Als een van je dingen het doet dan zal hetgene wat je middels $item als id gebruikt kennelijk wel voldoen aan de vereisten van een id selector.

Erhmm ergens moet je toch een berg van deze blokken tegen komen als je view source doet:
code:
1
2
3
4
5
              <script language="javascript" type="text/javascript">
                    function transfer() {
...
              }
               </script>


Maar goed kijk nog eens met view source of beredeneer op basis van je code hoevaak je een functie genaamd "transfer" probeert te maken. Heeft dat een kans van slagen, onderscheid maken als alles dezelfde naam

Neem als analogie de postbode en adressen, gaat de postbezorging werken als er meerdere adressen geheel en als hetzelfde zijn ?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Profdumbledore schreef op donderdag 30 november 2017 @ 22:18:
[...]

In de browser kan ik de functie "transfer" niet vinden, de tekst wordt met de functie wel verplaatst dus dat werkt wel.
Natuurlijk werkt het wel, je hebt die functie tig keer in je uiteindelijke broncode staan (want je drukt hem elke keer opnieuw af) en als je die functie dan aanroept dan roep je alleen de laatste keer dat je hem overschrijft aan. Match dat voor de grap eens met wat je probleem is. ;)

Een van de vele problemen in dit kleine stukje code trouwens:
  1. Je sluit de openingstag van je div niet af met een >.
  2. Een class die "class" heet is wel heel erg onhandig.
  3. Los van dat de complete inhoud van $item als ID gebruiken niet handig is druk je die inhoud ook nog niets eens af, want er staat geen echo voor...
  4. ...maar je lijkt dat ID verder toch niet te gebruiken, dus waarom definieer je het überhaupt?
  5. Je gebruikt short open tags en die staan lang niet overal (lees: vrijwel nergens) aan.
  6. Events in javascript horen in een event handler, onclick gebruiken is wel heel erg 1999. ;)
  7. Je drukt $item zonder te escapen af in een javascript-string. Da's niet heel erg handig als er een keer een dubbele quote in staat. ;)

[ Voor 4% gewijzigd door NMe op 30-11-2017 22:48 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Profdumbledore
  • Registratie: Juli 2016
  • Laatst online: 16-06 21:35
gekkie schreef op donderdag 30 november 2017 @ 22:39:
Als een van je dingen het doet dan zal hetgene wat je middels $item als id gebruikt kennelijk wel voldoen aan de vereisten van een id selector.

Erhmm ergens moet je toch een berg van deze blokken tegen komen als je view source doet:
code:
1
2
3
4
5
              <script language="javascript" type="text/javascript">
                    function transfer() {
...
              }
               </script>


Maar goed kijk nog eens met view source of beredeneer op basis van je code hoevaak je een functie genaamd "transfer" probeert te maken. Heeft dat een kans van slagen, onderscheid maken als alles dezelfde naam

Neem als analogie de postbode en adressen, gaat de postbezorging werken als er meerdere adressen geheel en als hetzelfde zijn ?
Ik heb het inderdaad gevonden, ik zat bij element inspecteren te kijken en niet bij de source code |:( in de source code staat bij geen enkele div een id zou dit de reden zijn dat het niet werkt?
NMe schreef op donderdag 30 november 2017 @ 22:44:
[...]
Een van de vele problemen in dit kleine stukje code trouwens:
  1. Je sluit de openingstag van je div niet af met een >.
  2. Een class die "class" heet is wel heel erg onhandig.
  3. Los van dat de complete inhoud van $item als ID gebruiken niet handig is druk je die inhoud ook nog niets eens af, want er staat geen echo voor...
  4. ...maar je lijkt dat ID verder toch niet te gebruiken, dus waarom definieer je het überhaupt?
  5. Je gebruikt short open tags en die staan lang niet overal (lees: vrijwel nergens) aan.
  6. Events in javascript horen in een event handler, onclick gebruiken is wel heel erg 1999. ;)
  7. Je drukt $item zonder te escapen af in een javascript-string. Da's niet heel erg handig als er een keer een dubbele quote in staat. ;)
Er zitten inderdaad wat foutjes in de code die ik hier gepost heb, maar de code die ik hier gepost heb is alleen maar een voorbeeld in mijn echte code zitten die foutjes niet behalve dat ik het div id niet echo'de waardoor er geen id was. Dit heb ik aangepast maar het werkt nog steeds niet. (de reden dat ik onclick gebruik is omdat ik eventhandlers niet ken ik zit immers nog in 5 havo)

Is er misschien een manier waarmee ik de tekst uit een div kan linken met de div id?
bijvoorbeeld
PHP:
1
2
3
4
5
if (tekst = divid) {
    kopieer 
} else {
    error
}

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Gewoon die hele transfer-functie maar één keer in je code zetten (dus buiten die foreach). Vervolgens een parameter aan die functie geven waarmee je het ID van het element dat de tekst die je wil kopiëren doorgeeft (en alleen die tekst!) en in de transferfunctie de inhoud van het element met dat ID uitlezen en in de textarea zetten.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Profdumbledore
  • Registratie: Juli 2016
  • Laatst online: 16-06 21:35
NMe schreef op vrijdag 1 december 2017 @ 13:20:
Gewoon die hele transfer-functie maar één keer in je code zetten (dus buiten die foreach). Vervolgens een parameter aan die functie geven waarmee je het ID van het element dat de tekst die je wil kopiëren doorgeeft (en alleen die tekst!) en in de transferfunctie de inhoud van het element met dat ID uitlezen en in de textarea zetten.
Ik heb geprobeerd om de transfer functie uit de foreach te halen maar als ik dat doe krijg ik als foutmelding:
"Uncaught SyntaxError: Invalid or unexpected token" terwijl de regel waarop dat is een wit regel is?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Profdumbledore schreef op vrijdag 1 december 2017 @ 16:19:
[...]


Ik heb geprobeerd om de transfer functie uit de foreach te halen maar als ik dat doe krijg ik als foutmelding:
"Uncaught SyntaxError: Invalid or unexpected token" terwijl de regel waarop dat is een wit regel is?
Wat verwacht je nu van ons? Dat we je helemaal aan het handje gaan houden? Wat dacht je er van om eens gewoon de foutmelding te lezen, te googlen desnoods als je 't niet snapt, naar de regelnummers te kijken etc. en gewoon te debuggen zoals iedereen dat moet doen als er iets mis gaat?

Zonder de exacte, relevante(!!), code etc. kunnen we alleen maar gissen naar wat je waarschijnlijk aangepast hebt en wat er waarschijnlijk mis gaat. Maar we zitten hier niet om handjes te houden en verwachten ook eigen inzet / initiatief.

[ Voor 15% gewijzigd door RobIII op 01-12-2017 16:24 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Profdumbledore
  • Registratie: Juli 2016
  • Laatst online: 16-06 21:35
Ik ben hier inmiddels de hele middag mee bezig geweest,
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!DOCTYPE html>
<html>
<head>

    <script language="javascript" type="text/javascript">

    function transfer() {
    var newtext = "test"
                   document.trade.want.value += newtext;
                   
                   }
    </script>
    <title></title>
</head>
<body>
    <div id="inventory">
        <?php 
            if(isset($_SESSION['steamid']))
            {

                $id = $_SESSION['steamid'];
                $json = file_get_contents("http://steamcommunity.com/profiles/" . $id . "/inventory/json/730/2");
                $data = json_decode($json, true);
                $items = $data["rgDescriptions"];
                
                foreach ((array) $items as $item) {
        ?>
        <div class="items" id="<?php echo $item["market_hash_name"] ?>" >
            <?php 
                    echo "<img src='http://cdn.steamcommunity.com/economy/image/" . $item["icon_url"] . "' height=100px width=120px >"; echo "<br>"; echo $item["market_hash_name"];
                        ?> <input onclick="transfer()" type="button" value="Add to trade">
        </div><?php
                }
            }
            else
            {
            ?>Please login first <?php    
            }
            ?>
    </div>
</body>
</html>


ik hoop dat iemand mij kan laten zien hoe ik kan zorgen dat de functie transfer()
PHP:
1
<img src='http://cdn.steamcommunity.com/economy/image/" . $item["icon_url"] . "' height=100px width=120px >";  echo "<br>"; echo $item["market_hash_name"]; 

laatzien en niet test, ik heb geprobeerd om de link hierboven in var newtext gezet maar dit werkt niet.

Acties:
  • 0 Henk 'm!

  • 0stone0
  • Registratie: Maart 2015
  • Laatst online: 11-09 16:26

0stone0

01000010 01101111 01100101 !

Waarom sluit en open je PHP telkens?

Ik zal beginnen met het goed zetten van je code

https://stackoverflow.com...nsert-variables-in-string

Voorbeeld: (not tested)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 

if(isset($_SESSION['steamid'])) {
    $id = $_SESSION['steamid'];
    $json = file_get_contents("http://steamcommunity.com/profiles/" . $id . "/inventory/json/730/2");
    $data = json_decode($json, true);
    $items = $data["rgDescriptions"];
    
    foreach ((array) $items as $item) {
        echo "<div class='items' id=$item["market_hash_name"]>
                <img src='http://cdn.steamcommunity.com/economy/image/$item['icon_url']' height=100px width=120px >
                 <br>
                    $item['market_hash_name']
                        <input onclick='transfer()' type='button' value='Add to trade'>"; 
    }
} else {  {
    echo "Please login first"; 
}
?>


Ook mis ik nog de sluit tags

"~~Linux is only free if your time has no value"


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je nou PHP eens even links laat liggen en eerst eens stukje "statische" HTML/JS schrijft om te experimenteren hoe 't nou precies moet worden en daarna pas gaan druk maken om de PHP en hoe je de juiste output daarmee genereert.

Met dit beginnetje kom je vast al een heel eind: https://jsfiddle.net/6ghxgpup/ of https://jsfiddle.net/6ghxgpup/1/

[ Voor 5% gewijzigd door RobIII op 01-12-2017 18:38 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 09-09 17:16
0stone0 schreef op vrijdag 1 december 2017 @ 18:30:
Waarom sluit en open je PHP telkens?

Ik zal beginnen met het goed zetten van je code

https://stackoverflow.com...nsert-variables-in-string

Voorbeeld: (not tested)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 

if(isset($_SESSION['steamid'])) {
    $id = $_SESSION['steamid'];
    $json = file_get_contents("http://steamcommunity.com/profiles/" . $id . "/inventory/json/730/2");
    $data = json_decode($json, true);
    $items = $data["rgDescriptions"];
    
    foreach ((array) $items as $item) {
        echo "<div class='items' id=$item["market_hash_name"]>
                <img src='http://cdn.steamcommunity.com/economy/image/$item['icon_url']' height=100px width=120px >
                 <br>
                    $item['market_hash_name']
                        <input onclick='transfer()' type='button' value='Add to trade'>"; 
    }
} else {  {
    echo "Please login first"; 
}
?>


Ook mis ik nog de sluit tags
Dit gaat nooit werken, omdat de " (QUOTE) de echo-scope afsluit.

Als je variabelen wilt gebruiken in output kun je eigenlijk altijd beter dit doen:

PHP:
1
2
3
4
5
6
7
<?

echo "Hier komt een variable te staan:" . $var . "En hier nog wat tekst \r\n";
echo "Als je een var aan het einde wilt:" . $var;
echo $var . "Of aan het begin";

?>

Acties:
  • 0 Henk 'm!

  • Profdumbledore
  • Registratie: Juli 2016
  • Laatst online: 16-06 21:35
Bedankt iedereen! Ik ben eruit gekomen _/-\o_ _/-\o_

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Profdumbledore schreef op vrijdag 1 december 2017 @ 19:21:
Bedankt iedereen! Ik ben eruit gekomen _/-\o_ _/-\o_
Als je dan ook even je oplossing post dan hebben anderen die in de toekomst middels de search of Google o.i.d. op je topic stuiten er ook nog iets aan ;)

Topiceinde
[q]
  • Opgelost: Je hebt een probleemtopic geopend en het is opgelost. Post dan altijd op welke manier je het hebt opgelost. Op deze manier is het voor een volgende lezer ook makkelijker een oplossing te vinden. Post ook als je het uiteindelijk hebt 'opgelost' door middel van een herinstallatie of format. Opgelost betekent niet dat het topic daarna op slot moet.

[ Voor 41% gewijzigd door RobIII op 01-12-2017 20:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1