私はMatthew Pennell(ショッピングカートのチュートリアル)のショッピングカートを持っています。ショッピングカートのスクリプトでpaypalを実装したいと思います。しかし、私は本当に解決できない問題に遭遇します。彼のコードではforeachループを行っているので、私のpaypal "item_name_"と "amount_"は可変でなければなりません。配列内の配列の数を計算する必要があります。私はcount($ content)を使って試しましたが、配列の数は私に与えましたが、結果はカート内の他のすべての行で増えています。 すなわち配列の配列の数を数えます。
1 object return 1
2 object return 2 , 2
3 object return 3, 3 ,3
私は他の機能を逃してしまった場合、私は思ったんだけど、または実際の戻りデータが3,3,3である場合でも、1つだけの結果を取得する方法があります。
最後にpaypal_quantityにはカートに追加する変数がありますか?これらの行が
<input type="hidden" name="item_name_<?php echo count($contents); ?>" value="<?php echo $title; ?>"></input>
<input type="hidden" name="amount_<?php echo count($contents); ?>" value="<?php echo $price; ?>"></input>
は、foreachループの内側にあるので、あなたのループであれば二回、エコー数($内容)ためである
<?php
$i = 1;
function checkout() {
global $db;
$cart = $_SESSION['cart'];
if ($cart) {
$items = explode(',', $cart);
$contents = array();
foreach ($items as $item) {
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
}
?>
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart"></input>
<input type="hidden" name="upload" value="1"></input>
<input type="hidden" name="business" value="my_email.com"></input>
<?php
foreach ($contents as $id => $qty) {
echo $contents;
$sql = 'SELECT * FROM books WHERE id = ' . $id;
$result = $db->query($sql);
$row = $result->fetch();
extract($row);
?>
<input type="hidden" name="item_name_<?php echo count($contents); ?>" value="<?php echo $title; ?>"></input>
<input type="hidden" name="amount_<?php echo count($contents); ?>" value="<?php echo $price; ?>"></input>
<input type="hidden" name="quantity" value="<?php echo $qty; ?>"></input>
<?php
}
?>
<input type="submit" value="PayPal"></input>
</form>
ya、これは$ content/$ count(content)をエコーアウトすることでわかります。関数内で、変数$ contentは、カートに表示される行数の唯一のキーを保持しているようです。私はIF($ content ==?){variable $ i = 1;}を実行できるかどうか疑問に思っていました。それを$ i ++としようか? – 3cross