/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Kald af class i link
Fra : Thomas Larsen


Dato : 06-06-05 11:49

hejsa, er der nogen måder jeg kan kalde en phpclass inde i et html link ??

Har lavet noget ala det her, ved ikke om det er den rigtige løsning

<?php
session_start();
mysql_connect("localhost", "root", "");
mysql_select_db("shop");
class shopping_cart {
var $item_id;

function insert_item($item_id) {
//Funktion der der putter varer i kurven
$item_id = $this->item_id;
$sess_id = session_id();
mysql_query("INSERT INTO cart (vare_id,sess_id) VALUES
('$item_id','$sess_id')") or die(mysql_error());
}

function delete_item() {
//Not written yet
}

function update_item() {
//Not written yet
}
}

if($_GET['func'] == "insert_item") {
$cart = &new shopping_cart;
$vare_id = $_GET['vare_id'];
$cart->item_id = $vare_id;
$cart->insert_item($cart->item_id);
}
?>

<a href="shopping_cart.php?func=insert_item&vare_id=22">Læg i kurv</a>


Dette er min første class i php så ved ikke om jeg er rigtig ell. forkert på
den

Men giv lige en tilbagemelding om jeg er helt hen i vejret

Mvh Thomas L.



 
 
Per Thomsen (06-06-2005)
Kommentar
Fra : Per Thomsen


Dato : 06-06-05 17:49

Thomas Larsen wrote:
> hejsa, er der nogen måder jeg kan kalde en phpclass inde i et html link ??
>
> Har lavet noget ala det her, ved ikke om det er den rigtige løsning
>
> <?php
> session_start();
> mysql_connect("localhost", "root", "");
> mysql_select_db("shop");
> class shopping_cart {
> var $item_id;
>
> function insert_item($item_id) {
> //Funktion der der putter varer i kurven
> $item_id = $this->item_id;
> $sess_id = session_id();
> mysql_query("INSERT INTO cart (vare_id,sess_id) VALUES
> ('$item_id','$sess_id')") or die(mysql_error());
> }
>
[klip - nogle uskrevne metoder]
> }
>
> if($_GET['func'] == "insert_item") {
> $cart = &new shopping_cart;
> $vare_id = $_GET['vare_id'];
> $cart->item_id = $vare_id;
> $cart->insert_item($cart->item_id);
> }
> ?>
>
> <a href="shopping_cart.php?func=insert_item&vare_id=22">Læg i kurv</a>
>
>
> Dette er min første class i php så ved ikke om jeg er rigtig ell. forkert på
> den
>
> Men giv lige en tilbagemelding om jeg er helt hen i vejret
>
> Mvh Thomas L.
>

Hej Thomas

Grundtrækkene i dit script ser rigtigt nok ud (i den forstand at det
burde virke).

Dog er der noget lidt underligt ved din insert_item metode.
Du tager en parameter med til metoden, men det første du gør i metoden
er at overskrive parameterens værdi med en attribut værdi:
   $item_id = $this->item_id;
så er det jo fuldstændig ligemeget, hvad man sendte med til metoden.

Du kunne lige så godt have lavet metoden uden parametre så:
function insert_item() {
$item_id = $this->item_id;
$sessId = session_id();
mysql_query("INSERT INTO cart (vare_id,sess_id)
VALUES('$itemId','$sessId')") or die(mysql_error());
}

og så senere i scriptet:
$cart->insert_item();
i stedet for:
$cart->insert_item($cart->item_id);

Personligt ville jeg nok tage $item_id med som parameter til
constructoren, så kunne din klasse f.ex. se således ud:

class ShoppingCart {
var $itemId;
function ShoppingCart($itemId) {
$this->itemId;
}
function insertItem() {
$itemId = $this->itemId;
$sessId = session_id();
mysql_query("INSERT INTO cart (vare_id,sess_id)
VALUES('$itemId','$sessId')") or die(mysql_error());
}
}

og længere nede i scriptet, ville det være:
$Cart =& new ShoppingCart($_GET['item_id']);
$Cart->insertItem();
i stedet for:
$cart = &new shopping_cart;
$vare_id = $_GET['vare_id'];
$cart->item_id = $vare_id;
$cart->insert_item($cart->item_id);

Jeg bider mærke i at din klasse hedder shopping_cart, så tror jeg at du
nok egentlig gerne ville kun have flere items i en shopping_cart. Derfor
tror jeg at det måske er session_id, der skal med til constructoren, og
at der faktisk skal en item_id med til insert_item metoden. Evt. vil du
faktisk gerne have en Item klasse, som en ShoppingCart så kan indeholde
flere af.
Men det er jo bare gætværk fra min side, som du kan tage til
efterretning. :)

MVH Per Thomsen,
http://www.pert.dk/

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste