button name

  • Hey,


    Via een while worden er meerdere submit knopjes ge echo'ed, de name van deze submit knopjes is:


    name='buy_".$i."'


    Ik heb dus meerdere submits nu met als name buy_1, buy_2, buy _3 etc...


    Hoe kan ik dan nu alleen de if(isset($_POST maken? Je kan het met allemaal if'jes doen maar kan het niet korter?


    hoe kan ik het getal naast de buy ophalen of iets dergelijks zodat ik maar 1 if hoef te gebruiken en niet voor elke submit 1 if.


    MVG.

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Ik zou de submit knopjes Multidimensionaal maken. Zodat je alle knopjes kan groeperen in een variabel. En een "mapje" ervan kan maken.
    Dat doe je als volgt:

    PHP
    <input type="submit" name="buy[".$i."]" />


    Zo krijg je dit resultaat als er op de eerste knop wordt gedrukt: $_POST['buy'][1]
    Daarmee kan je wel werken en zoiets uitvoeren:

    PHP
    $i = 1;
    foreach ($_POST['buy'] as $item) {
        // je krijgt dan: $item[1], $item[2] enzovoort.
        //$item[1] staat gelijk aan buy[1]
        if(isset($item)){
            //Code uitvoeren als op deze item is geklikt.
        }
    }


    Ik weet niet of het zal werken, maar het is een indicatie van hoe het zal werken.
    Als je alleen een cijfer uit een variabel wilt halen dan doe je dit:

    PHP
    $test = "U heeft 99 items gekocht";
    $number = preg_replace("/[^0-9]/", '', $test);
    echo $number; // resultaat: 99


    Ik hoop dat ik je hiermee genoeg geïnformeerd heb.
    Succes:cheer:

  • Als je niks submit krijg je die error, of de variabel bestaat niet.
    Probeer anders dit:

    PHP
    foreach ($_POST['buy'] as $item => $submit){
        if(isset($submit)){
            //Code uitvoeren als op deze item is geklikt.
        }
    }
  • Citaat van ismail123

    Als je niks submit krijg je die error, of de variabel bestaat niet.
    Probeer anders dit:

    PHP
    foreach ($_POST['buy'] as $item => $submit){
        if(isset($submit)){
            //Code uitvoeren als op deze item is geklikt.
        }
    }


    Ik heb nog steeds de zelfde error, de submit werkt verder ook niet, als ik erop drukt gebeurd er niks.

  • Citaat van sukel

    Ik heb nog steeds de zelfde error, de submit werkt verder ook niet, als ik erop drukt gebeurd er niks.


    Let wel even op dat je alles goedtypt, en niet bijvoorbeeld buy_[1] maar buy[1] als die voorbeeld wilt gebruiken.

  • Het script ziet er nu als volgt uit:


    De submit knoppen:

    PHP
    <input type='submit' name='buy[".$i."]' value='Kopen'>


    Is de submit knop ingedrukt?

    PHP
    foreach ($_POST['buy'] as $item => $submit){
        if(isset($submit)){


    Huis geven aan de koper:

    PHP
    mysql_query("UPDATE `userGear` SET `house`=".$_POST['buy']." WHERE `id`=".ID);


    Echter werkt het laatste gedeelte niet, omdat hij natuurlijk niet weet welke nummer het is, hoe kan ik dat in de $_POST['buy'] verwerken? Dus als je huis nummer drie koopt moet er staan $_POST['buy[3]'] etc.. (of werkt dat anders?)


    Kan iemand me met dit laatste stuk helpen?

  • Als je bij de foreach een submit knop hebt die wel is ingedrukt, dan kan je daar een variabel aanmaken bijvoorbeeld $house_number = $submit;
    en die verwerk je weer in mysql.
    dus `house`=".$house_number."


    Zeg het me als het lukt en succes;)

  • Citaat van ismail123

    Als je bij de foreach een submit knop hebt die wel is ingedrukt, dan kan je daar een variabel aanmaken bijvoorbeeld $house_number = $submit;
    en die verwerk je weer in mysql.
    dus `house`=".$house_number."


    Zeg het me als het lukt en succes;)


    Unknown column 'Kopen' in 'field list'


    (Ik maak nergens gebruik van de kolom kopen in me script of database)


    $house_number bevat volgens mij niet alleen het cijfer maar gewoon heel de buy[cijfer].


    EDIT:


    Na wat onderzoek weet ik nu dat $house_number de value: Kopen bevat, dat vind ik raar want ten eerste is de name van de submit niet Kopen maar buy en ten tweede ontbreekt de [cijfer]. Maar zo werkt het dus niet want de value moet de [cijfer] zijn.


    De value van de submit is trouwens wel Kopen.

  • @sukel,


    Heb je voor elke submit knopje apart een <form> gemaakt?
    Zoja:
    <input type="hidden" name="house_number" value="1">

    PHP
    echo $_POST["house_number"]; // resultaat: 1


    Zonee:
    Een simpele optie is een checkbox maken met de huis die je gekozen hebt, en dan een submit knop erbij maken.

    Nieuwe reactie samengevoegd met originele reactie op 13.08.12 23:19:44:
    Wat ook mogelijk is, is om de index van de array te verkrijgen, en dat doe je door:
    key($array);
    te gebruiken, hiermee wordt de index van de array weergegeven.

  • Het probleem is opgelost!


    Oplossing:


    PHP
    if(is_array( $_POST['buy'] ) ) {
            
        $house_number = key($_POST["buy"]);


    Als de speler / bezoeker dus op de 5e knop drukt, welke buy[5] heet, dan zal $house_number de value 5 bevatten!


    Bedankt ismail123!


    :slotje:

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!