2011-03-09 1 views
2

고객을위한 인보이스 시스템을 구축 중이며 선택한 드롭 다운에서 주문 상태 및 지불 상태를 변경할 수있는 권한을 부여하고 싶습니다. .변경 양식 제출을 선택했지만 결과를 무시하십시오. - jquery/php

<form action="changestatus.php" method="post"> 
    <input type="hidden" name="status" value="order"/> 
    <input type="hidden" name="orderid" value="33"/> 
    <select name="orderstatus"> 
     <option value="Complete">Complete</option> 
     <option value="Incomplete">Incomplete</option> 
    </select> 
    </form> 
    <form action="changestatus.php" method="post"> 
    <input type="hidden" name="status" value="payment"/> 
    <input type="hidden" name="orderid" value="33"/> 
    <select name="paymentstatus"> 
     <option value="Complete">Complete</option> 
     <option value="Incomplete">Incomplete</option> 
    </select> 
    </form> 

changestatus.php

<?php 
switch($_POST['status']) 
{ 
case"payment": 
     mysql_query("UPDATE orders SET payment_status = '$_POST[paymentstatus]' WHERE ID = '$_POST[orderid]'")or die(mysql_error()); 
break; 
case"order":  
     mysql_query("UPDATE orders SET order_status = '$_POST[orderstatus]' WHERE ID = '$_POST[orderid]'")or die(mysql_error()); 
break; 
} 

?> 

은 내가() (http://api.jquery.com/jQuery를 jquery.post 사용할 수 있다고 생각합니다. 게시물 /)하지만 어떻게 구현 해야할지 모르겠다.

///// EDIT

확인 해결책을 찾았습니다. 내가 변수

<?php 
include"../inc/config.php"; 
switch($_GET['status']) 
{ 
case"payment": 
     $query = mysql_query("UPDATE orders SET payment_status = '$_GET[paymentstatus]' WHERE ID = '$_GET[ID]'")or die(mysql_error()); 
     if($query){echo"Saved";}else{echo"Not Saved";}; 
break; 
case"order":  
     $query = mysql_query("UPDATE orders SET orderStatus = '$_GET[orderstatus]' wHERE ID = '$_GET[ID]'")or die(mysql_error()); 
     if($query){echo"Saved";}else{echo"Not Saved";}; 
break; 
} 

?> 

GET 받아 "changestatus.php"를 변경

그런 다음

<select name="orderstatus"> 
     <option value="Complete">Complete</option> 
     <option value="Incomplete">Incomplete</option> 
    </select> 


    <select name="paymentstatus"> 
     <option value="Complete">Complete</option> 
     <option value="Incomplete">Incomplete</option> 
    </select> 

에 양식을 변경하고 마지막으로 자바 스크립트

<script> 
$(document).ready(function() { 


$('#paymentstatus').change(function() { 
    url = "changestatus.php?ID=<?php echo $_GET['ORDERID'];?>&status=payment&paymentstatus="+$('#paymentstatus').val(); 
    $("#payment_status_result").load(url) 
}); 
$('#orderstatus').change(function() { 
    url = "changestatus.php?ID=<?php echo $_GET['ORDERID'];?>&status=order&orderstatus="+$('#orderstatus').val(); 
    $("#order_status_result").load(url) 
}); 
}); 
</script> 
+0

내가 다음에 사용되는 주문 상태 드롭 다운 http://stackoverflow.com/questions/536502/how-can-i-에 id="orderStatus"를 추가 fade-out-a-div-jquery를 사용하여 결과 메시지를 페이드 아웃합니다. –

답변

1

는 찾아 http://api.jquery.com/change/를 참조하십시오 드롭 다운 메뉴가 변경되면 자바 스크립트를 실행하는 방법.

jquery 게시물에 대한 주요 사용 이유는 AJAX 호출을하기위한 것입니다. 무엇을 하든지 결과를 무시하지 않으려 고합니다. 스크립트는 항상 오류 또는 성공 메시지를 반환해야합니다.

0

먼저 양식을 제공하고과 같이 ID를 선택 :

<form action="changestatus.php" method="post" id="orderStatusForm"> 
<form action="changestatus.php" method="post" id="paymentStatusForm"> 
<select name="orderstatus" id="orderstatus"> 
<select name="paymentstatus" id="paymentstatus"> 

그런 다음 스크립트에서 변경 관찰자를 추가하면 시작할 수 있어야

var changeOrderStatus = function(){ 
    $.post("changestatus.php", $("#orderStatusForm").serialize()); 
} 

var changePaymentStatus = function(){ 
    $.post("changestatus.php", $("#paymentStatusForm").serialize()); 
} 

$('#orderstatus').change(changeOrderStatus); 
$('#paymentstatus').change(changePaymentStatus); 

이 다음에 대해 조금 더 읽기 jQuery AJAX 함수를 사용하면 서버에서 응답을 처리 할 수 ​​있습니다.

+0

감사합니다. 그러나로드를 사용하는 다른 방법을 찾았습니다. 편집 된 게시물을 참조하십시오. –

0

확인,이 같은 change()를 사용

$("#orderStatus").change(function() { /* post() your form here */ }); 

관련 문제