2014-11-18 1 views
0

다른 제품에서 선택하려면 select를 사용하고 그 값으로 DB 쿼리 문의를 수행하여 제품 가격을 얻은 다음 입력을 설정하십시오 그것과 함께 태그. select에서 값을 가져 와서 DB와 비교하여 가격을 얻으십시오

<section id="products"> 
     quantity: <input type="number" id="quantity"><br><br> 
     <section id="selectProd"> 
       <?php 
       $query = $conn->query("SELECT name FROM Products ORDER BY name"); 
       ?> 
       Product: <select id="comProduct" class="comProduct"> 
        <?php while ($option = $query->fetch_object()) { ?> 
         <option><?php echo $option->name; ?></option> 
        <?php } ?> 
       </select> 
       <script> 
        $(document).on("ready",function(){ 
        $("#comProduct").on("click", function(){ 

         var value = $("#comProduct option:selected").text(); 
         <?php 
         $servername = "localhost"; 
         $username = "root"; 
         $password = ""; 
         $database = "BERAKA"; 
         $conn = new mysqli($servername, $username, $password, $database); 
         if ($conn->connect_error) { 
         die("Connection failed: " . $conn->connect_error); 
         } 
        $valuephp = $_GET['value']; 
        $query = $conn->query("SELECT price FROM products where name='$valorphp'"); 
        ?> 

        document.getElementById("ppu").value = "<?php $query->fetch_object(); ?>"; 
        }); 
        });  
       </script> 
     </section> <br> 
     Price per unit: <input type="text" id="ppu" > 
    </section> 

가 작동하지 않는 이유는, 당신은 sql injection attacks에 취약

+1

오류가 있습니까? –

+1

그런 JS 안에 PHP/SQL을 삽입해서는 안됩니다. –

+2

그런 식으로하려는 경우 AJAX 사용을 고려해야합니다. http://programmers.stackexchange.com/questions/171203/what-are-the-difference-between-server-side-and-client-side-programming –

답변

1

도와주세요 모르겠어요. 앉아서 긴장을 풀다 - 서버가 pwn3d가되면 문제가 해결됩니다.

은 물론, 코드는 매우 결함이 :

document.getElementById("ppu").value = "<?php $query->fetch_object(); ?>"; 

귀하의 인출 호출이 유용 아무것도하지 않습니다. fetch는 객체를 반환하지만 객체를 캡처하거나 출력하지 않기 때문에 DB 행 데이터가 손실됩니다. 일부 기적에 의한 DID 호출을 가져 오더라도 PHP 객체를 Javascript 코드 컨텍스트로 덤프 할 수는 없습니다. 직접 json_encode()을 사용하지 않고 JS 컨텍스트에 PHP에서

<?php 
    ... 
    $row = $query->fetch_object(); 
    $price = $row->price; 
?> 
    document.getElementById('ppu').value = <?php echo json_encode($price); ?>; 

결코 EVER 덤프 텍스트 :

는이 같은 뭔가 더 필요합니다. JS 구문 블록에 유효하지 않은 텍스트를 버려서 JS 구문 오류를 일으키고이 불량 코드가 들어있는 <script> 블록 전체를 제거 할 위험에 처해 있습니다. 항상 json_encode()를 사용하여 덤프하고있는 내용 JS 코드에 해당 값은 유효한 자바 스크립트입니다.

+0

이것을 시도하면, 효과가 있는지 알려 줄 것이다. – cafej

관련 문제