2012-11-26 5 views
1

2 개의 선택 목록과 하나의 이름 지정 제품 및 수량을위한 선택 목록이 있습니다.데이터베이스의 값에서 선택 목록 설정

<select name="fish" id="fish"> 
    <option value="blueFish">Blue Fish</option> 
    <option value="redFish">Red Fish</option> 
    <option value="pinkFish">Pink Fish</option> 
    <option value="greenFish">Green Fish</option> 
</select> 

<select name="numFish" id="numFish"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
</select> 

제품을 선택하면 그에 상응하는 수량이 데이터베이스에서 설정됩니다. 고객 빌리 내가 핑크 물고기를 선택하면, 5 핑크 물고기를 구입했다는 기록이 있다면

그래서, 수량 선택 목록은 MySQL을 사용하는 PHP 형태로 사용하기위한 것 5.

이 변경됩니다 데이터 베이스.

그러한 기능이 가능합니까? 그렇다면 어떻게해야합니까?

+0

. 당신은 자바 스크립트가 필요합니다. –

답변

2

아약스 요청에 대해서는 Google에 문의하십시오. 그것은 무엇입니까 (귀하의 경우) 자바 스크립트를 통해 변화를 감지, 선택한 값을 SQL 쿼리를 수량을 반환 해야하는 다른 PHP 스크립트로 보냅니다. 아약스 요청은 반환 값을 잡아 자바 스크립트를 통해 다시 선택 드롭 다운에서 값을 변경합니다.

이 모든 것이 백그라운드에서 발생하며 사이트가 새로 고침되지 않습니다.

자바 스크립트에 익숙하지 않은 경우 jquery 프레임 워크를 살펴볼 수 있습니다.이 작업은 좀 더 쉽고 많은 예제가 문서화되어 있습니다.

javascript/jquery/ajax에 익숙하지 않다고 가정하기 때문에 코드를 붙여 넣지 않았습니다. 약간의 문서를 읽고 조금 놀고 구체적인 문제가 생겼을 때 다시 돌아와서 Stackoverflow의 정상적인 워크 플로우를 원할 수 있습니다.

편집 : 자바 스크립트 (OP의 요청에 따라 일부 코드) :

$('#fish').change(function(){ 
    var fishType = $('#fish select option:selected'); 
    $.ajax("getQuantity.php", {fish: fishType}, function(data){ 
     data = JSON.parse(data); 
     if(data.status == "OK"){ 
      var quantity = data.quantity; 
      $('#numFish option[value='+quantity+']').prop("selected", true); 
     } else { 
      alert("error");// or console.log(), whatever you prefer 
     } 
    } 
}); 

PHP (getQuantity.php를)

<?php 
    $fish = $_POST['fish']; //getting the fish type 
    $sql = "your SQL to select the fish quantity for that type"; 
    $result = mysqli_query($mysqli, $sql); 

    if(mysqli_num_rows($result)>0){ 
     $row = mysqli_fetch_assoc($result); 
     $data = array("status" => "OK", "quantity" => $row['quantity']); // you can just output a string with the number if you want, but this way you have more control and better debugging. 
     echo json_encode($data); 
    } 
?> 

기본 코드는 여전히 일부를 잡을 필요가있어 데이터베이스에 대한 오류 또는 다른 상태 리턴. 그러나 기본적으로 그것이 그 것이다. 나는 그 코드를 테스트조차하지 않았으므로 지침으로 만 사용하십시오.

+0

JavaScript에 익숙하지 않지만 내 사이트의 다른 기능에 jquery를 이미 사용하고 있으므로 예제 코드 스 니펫을 환영합니다. –

+0

내 대답에 작은 예제를 추가했습니다 – aleation

+0

제발 도와주세요 : 동일한 문제 : http : //stackoverflow.com/questions/26916065/break-the-quantity-number-in-a-record-and-set-them- as-for-option-selecti – klaudia

0

변경 <select name="fish" id="fish">

<select name="fish" id="fish" onchange="getQuantity(this.value);">에 자바 스크립트에 다음 함수를 선언 : 그것은 불가능하다

function getQuantity(o) { 
    // get the quantity from the database using ajax, 
    // and set the quantity dropdown here. 
} 
관련 문제