카트에 제공된 수량을 가진 알 수없는 재고 품목을 어떻게 추가합니까?

StackOverflow https://stackoverflow.com/questions/879993

문제

현재 PHP, JavaScript, MySQL, XHTML, CSS를 사용하여 사이트를 개발하고 있습니다. 솔루션은 이에 국한되지 않지만 가능하면 선호합니다.

큰 MySQL 위젯 테이블과 사용자가 특정 위젯을 검색 할 수있는 페이지가 있습니다.

예를 들어, 사용자에게 일부 위젯의 모델 이름을 입력하면 검색에서 20 개의 다른 위젯 모델을 반환 할 수 있습니다. 각 위젯 모델은 다르고 모두 고유 한 위젯 단위 가격과 위젯 모델 이름 등이 있습니다.

이제 어쨌든 까다로운 부분이 나옵니다 (어쨌든), 사용자는 원하는 위젯 HTML 텍스트 필드 옆에 수량을 입력 할 수 있어야합니다.

그런 다음 사용자는 수량과 모델을 연결하는 수량을 저장하는 카트에 추가 버튼을 푸시 할 수 있어야합니다.

(설계 참고 : MySQL 쿼리는 검색 결과 목록을 반환하는 데 사용되며 PHP를 사용하여 발견 된 위젯의 행을 반영합니다. 각 반복에 원하는 수량을 입력 해야하는 텍스트 필드도 표시됩니다.)

내 주요 문제는 MySQL 그려진 위젯 이름을 사용자가 입력 한 수량과 연관시키고 카트에 함께 저장하는 방법을 찾는 것입니다. 누군가가 나를 올바른 방향으로 가리킬 수 있습니까? 나는 이것을 다루는 방법을 잘 모르겠습니다.

나는 위젯 모델을 텍스트 필드 ID로 반영 할 수 있다고 생각했지만, 어떤 모델이 수량을 가진 후에 결정 하는가? 이것은 아마도 가능하더라도 그것을하는 가장 좋은 방법은 아닐 것입니다.

감사

도움이 되었습니까?

해결책

Textfield 이름을 항목과 같은 이름으로 만듭니다 [uniq_module_id

<input type="text" name="items[10001]">
<input type="text" name="items[10002]">
<input type="text" name="items[10003]">

그런 다음 PHP에서

$items = $_POST['items'];
print_r($items);

당신은 얻을 것입니다

[items] => Array
    (
        [uniq_module_id] => quantity
            ...
    )

그리고 샘플

$items = (isset($_POST['items'])) ? $_POST['items'] : array();
if (is_array($items)) {
    foreach ($items as $module_id => $quantity)
    {
        if (intval($quantity) > 0) {
            add2cart($module_id, $quantity);
        }
    }
}

다른 팁

모든 위젯에 "카트에 추가"-Button/링크가 있습니까? 필요한 정보 (수량 및 위젯 ID)를 Add-to-cart.php로 보내는 버튼/링크를 생성하십시오.

foreach ($rows as $row) {
    // Print widget info
    echo '<input type="text" name="quantity" id="widget_' . $row['widgetID'] . '_qty" value="1">';
    echo "<button onclick=\"javascript: location.href='add-to-cart.php?widgetId=" . $row['widgetID'] . "&quantity=' + document.getElementById('widget_" . $row['widgetId'] . "_qty').value;\" value=\"Add to cart\" />";
}

또는 똑같은 것. Ajax를 사용하는 것도 좋은 솔루션 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top