2010-09-23 28 views
0

我正在php中製作一個簡單的購物車程序。 以下代碼的作用是更新當前頁面,以便將購買的產品的數量歸零。然後我嘗試將它鏈接到另一個頁面,該頁面執行另一個操作(更新數據庫)。 我可以做這個實驗的代碼,我做了什麼:使用一個鏈接執行2個動作的問題

echo "<td> 
<a href=\"$_SERVER[PHP_SELF]?action=zeroline&id=$product_id&commitbuy.php?ids=$id&qoh=$qtyhand&qtb=$quantity\"> 
<img src=\"http://localhost/onlinestore/img/system/accept-icon.png\"></img></a> 
</td>"; 

哪些更新當前頁面似乎是工作,但部分,即更新數據庫無法正常工作的一部分。 正如你所看到的,我只是將這兩個(PHP_SELF,這是viewcart.php,然後commitbuy.php)連同一個&符號。

我應該只將更新的代碼放在viewcart.php中嗎? 這是什麼正確的方法。

回答

1

是的,除非您使用Ajax同時向服務器發送兩個不同的請求(並且出於很好的理由),您應該處理後端PHP中的操作的所有關聯業務邏輯。即使使用Ajax,我也無法想象這個邏輯需要超過一個請求,而這個請求在成功時使用Javascript/jQuery在接口中將數量更新爲零。

正如@martin先前提到的,在確信第一個操作確實成功之前,您不希望觸發第二個依賴操作。

0

您應該查看Web服務器的日誌,您將看到只有一個呼叫正在進行,並且它包含整個href

&符號用於分隔URL中的查詢字符串參數,而不是分隔多個URL,因此它一次就從客戶端發送。

至少有兩個原因讓你不需要兩次調用:用戶體驗 - 進行兩次調用可能需要更長的時間,可靠性 - 如果數據庫更新失敗會怎麼樣?

您是否知道model-view-controllerMVC型號?

相關問題