2013-03-22 4 views
0

나는 현재 작동중인 바구니에서 일하고있는 순간 온라인 상점 웹 사이트를 만들고 있습니다. 사용자가 추가 버튼을 클릭하면 항목이 실제로 바구니에 추가되었음을 확인하는 메시지를 반향시키는 기능을 추가하려고합니다.PHP echo message

나는 이것을 훌륭하게 처리해야한다고 생각하지만 단순한 if 문을 만들었습니다. 메시지가 표시되지 않습니다.

코드 :

if (isset($_GET['add'])){ 
    $quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']); 
    while($quantity_row = mysql_fetch_assoc($quantity)){ 
     if($quantity_row['product_qua'] !=$_SESSION['cart_'.$_GET['add']]){ 
      $_SESSION['cart_'.$_GET['add']]+='1'; 
     } 
    } 
} 

if (isset($_GET['add'])){ 
    $basketMessage = "Item Sucesfully Added To Your Basket"; 
    echo $basketMessage; 
} 

어떤 제안이 ...?

답변 :

확인

belov 코드는 코드 형태 코드의 조각을 cart.php하는 제품을 나열하고 연결되어있는 파일입니다 ........ 위의 코드를 잊지 위 :

코드 : 모든 나는 제품 데이터베이스를 반복하고 추가 버튼 ..... N으로 할당 된 일부 항목을 나열하고 코드를 형성 볼 수

while($get_row = mysql_fetch_assoc($get)){ 
    ?> 
     <table id='display'> 
     <tr><td><?php echo "<img src=$get_row[$product_image] class='grow'>" ?></td></tr> 

     <tr> 
      <th></th> 
      <th><strong>Avalible</strong></th> 
      <th><strong>Price</strong></th> 
      <th><strong>Description</strong></th> 
     </tr> 

     <tr> 
     <td width='290px'><?php echo "$get_row[$product_name]" ?></td> 
     <td width='290px'><?php echo "$get_row[$product_qua]" ?></td> 
     <td width='290px'><?php echo "&pound $get_row[$product_price]" ?></td> 
     <td width='290px'><?php echo "$get_row[$product_des]" ?></td> 

     </tr> 
     <tr> 
     <td><?php echo '<a href="cart.php?add='.$get_row['product_id'].'" onclick="return basketMessage()">Add</a>';?></td> 
     </tr> 
     </table> 

    <?php 
     } 
    } 

    ?> 

<script>  
function basketMessage(){ 
     var confirmed = confirm("Add this item to Basket ?"); 
     return confirmed; 
} 
</script> 

OK 이어야합니다

$quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']); 

: 아야 나는 이것이 그들의 바구니 모든

+3

웹 페이지가 사용자에게 전송 될 때 PHP가 실행을 마칩니다. Javascript는 사용자가 웹 페이지를 받으면 실행을 시작합니다. 따라서 웹 페이지가 생성 된 후에 발생하는 모든 작업 (클라이언트 측 스크립팅)은 자바 스크립트에 있어야합니다. – Patashu

+1

GET 변수를 데이터베이스 쿼리에서 사용하기 전에 위생 조치가 필요합니다. 그렇게하지 않으면 온라인 상점에 불쾌한 문제가 발생할 수 있습니다. –

+0

... 그리고 그렇게하기 위해서는 mysql_real_escape_string(), 또는 훨씬 더 훌륭한 [PDO] (http://php.net/pdo)를 조사해야한다. – rid

답변

1

같은 것을 결과,이 혼자 PHP로 할 수 없습니다. AJAX를 통해 장바구니에 항목을 추가하는 자바 스크립트를 추가 한 다음 에코 한 응답을 수신하고 성공한 경우 성공 메시지를 표시해야합니다.

HTML :

<button class="mybutton">add to cart</button> 

자바 스크립트 : 귀하의 아약스 호출을 수신하는

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('.mybutton').click(function(){ 
     $.ajax({ 
     url:"yourscript.php", 
     data: {stuff: 'your cart data', productid: 134} 
     success: function(data){ 
      alert("your success message'); 
     } 
     }); 
    }); 

    }); 
    </script> 

PHP 함수 :

//does stuff 
$basketMessage = "Item Sucesfully Added To Your Basket"; 
echo json_encode($basketMessage); 

이 출발점이 될 수 obviou 교활한 이것은 완전하지 않습니다 ... 이것은 정말로 시작점 일뿐입니다. 당신이해야 할 일에 대한 일반적인 생각입니다.

0

처음에 추가 할 항목 인 경우 사용자에게 알리기 위해이 버튼에 몇 가지 자바 스크립트를 추가, 당신은이 라인에서 오류가

$add = $_GET['add']; 
$quantity = mysql_query("SELECT product_id, product_qua FROM products WHERE product_id='$add'"); 

또는

$quantity = mysql_query("SELECT product_id, product_qua FROM products WHERE product_id='".$_GET['add']."'"); 

그리고 당신은 mysql_로를 사용할 필요가 없습니다 * 더 이상 원인은 deprecat입니다 에드. 사용할 수 있습니다 http://php.net/manual/en/book.mysqli.php 또는 http://php.net/manual/en/book.pdo.php

+0

그리고 그의 질문은 어떻습니까? – Philipp

+0

당신의 대답에 대한 Thx하지만 난 왜 내 초기 쿼리가 잘못 될 것이라고 볼 수 없다 ....... 괜찮습니까? – Tomazi

-1

왜 2 단계로 진행하고 있습니까? 이것을 시도하십시오 :

if (isset($_GET['add'])){ 
$quantity = mysql_query('SELECT product_id, product_qua FROM products WHERE product_id='.$_GET['add']); 
while($quantity_row = mysql_fetch_assoc($quantity)){ 
       if($quantity_row['product_qua'] !=$_SESSION['cart_'.$_GET['add']]){ 
        $_SESSION['cart_'.$_GET['add']]+='1'; 
    } 
} 
$basketMessage = "Item Sucesfully Added To Your Basket"; 
echo $basketMessage; 
} 
+0

우르 오른쪽! 나는 실수가 Memolition이 말한 것이라고 생각한다. –

+0

나는이 작업을 시도했는데 두 부분으로이 작업을 시도한 이유가 없습니다. – Tomazi

1

이것은 전체 페이지를 다시 보내지 않고 PHP에서 가능하지 않습니다. 자바 스크립트를 사용하여 일부 버튼 클릭 이벤트에 반응 할 수 있습니다.

jQuery를 조합 이것은 @patashu가 언급 한 바와 같이이

<div id="messagefield"></div> 
<button id="buttonid">click me!</button> 
<script> 
    $("#buttonid").click(function() { 
     $("#messagefield").html("The button was clicked"); 
    }); 
</script>