2014-12-05 71 views
0

我遇到了我的項目問題。我試圖通過jQuery將某些內容發佈到數據庫,但是在我的代碼中存在錯誤,我無法弄清楚什麼。回調函數php?

基本上,我有一個表格:

<form id="addCartForm" method="POST" action="callback/additemtocart.php"> 
</form> 

文件裏面additemtocart.php我有以下代碼:

$item_id = $_POST['item_id']; 
$brand_id = $_POST['brand_id']; 
$category_id = $_POST['category_id']; 

if(item_exists($item_id, $brand_id, $category_id, $_SESSION['user_id'])) 
{ 
    $errors[] = 'this item is already in your cart'; 
} 
else 
{ 
    //register the user 
    $item_data = array(
     'user_id'   => $_SESSION['user_id'], 
     'item_id'   => $item_id, 
     'brand_id'  => $brand_id, 
     'category_id'  => $category_id 
    ); 

    add_item_to_cart($item_data); 
    $cart[] = 'An item has been added to your cart!'; 
} 

一旦在項目的用戶點擊,我將執行以下代碼:

$(".cart_item").click(function(){ 
     var name = $(this).attr("id"); 
     var array = name.split("|"); 

     var data = []; 

     data.push({"item_id": array[0]}); 
     data.push({"brand_id": array[1]}); 
     data.push({"category_id": array[2]}); 

     $.post($("#addCartForm").attr("action"), data, function(info){ 

     }); 
    }); 

    $("#addCartForm").submit(function(){ 
     return false; 
    }); 

它有什麼問題嗎?

+0

您的jQuery函數是否在PHP文件中? 'post'函數並不合理。 – putvande 2014-12-05 13:14:33

+0

你想要的輸出是什麼?你得到的錯誤是什麼?什麼工作不正常? – RichardBernards 2014-12-05 13:16:58

+0

好吧,以及如何讓它感覺? – Riad 2014-12-05 13:18:35

回答

0

你的代碼不會按照你想要的方式工作。

的Javascript/jQuery的執行客戶端,PHP是執行服務器側。當jQuery中的回調被觸發時,客戶端上沒有PHP服務器來處理你在那裏的PHP。

你想要做的,而不是什麼,是傳遞數組鍵和字符串作爲$ .post的一個參數,到服務器,然後可以將字符串添加到您的錯誤陣列上的腳本。

像這樣:

data.push({"item_id", array[0]}); 
    data.push({"brand_id", array[1]}); 
    data.push({"category_id", array[2]}); 

    data.push({"errors", "my error string"}); 

    $.post($("#addCartForm").attr("action"), data, function(info){ 
     //success message? 
    }); 

然後在動作腳本,你就可以檢查的get參數$ _ POST [「錯誤」],並將其添加到您的PHP錯誤陣列。

if(isset($_POST['errors']) && !empty($_POST['errors'])){ 
    $errors = $_POST['errors']; 
} 

編輯:拋開,考慮到你的編輯,你的錯誤是你的數組沒有定義,是嗎?你有名爲array1和array2的數組,但是你試圖訪問array [0],array [1]和array [2]。它應該是array2 [0]等。

+0

你能舉個例子嗎? – Riad 2014-12-05 13:22:01

+0

我在這裏 – Riad 2014-12-05 13:26:06

+0

做同樣的事情,你可以重複內additemtocart.php東西和信息參數 – Riad 2014-12-05 13:26:57