2017-09-28 22 views
0

特定のボタンをクリックしてボタンを無効にするにはどうすればよいですか?ボタンを無効にする方法

[Accept]ボタン([Accept]ボタンのみが無効)をクリックすると他のボタンが有効になります。 order_status = AcceptedそしてsubmitAcceptボタンが無効になります。

しかし、submitAcceptボタンがまだディスパッチされていても、それを変更してもorder_status(Accepted)の値を取得できませんでした。

UPDATE:それは受け入れボタンを無効にするが、それはすべてを無効にしてもORDER_STATUSが私のコード

<?php 


<div class="form-group"> 
<label for="order_status" class="col-sm-2 control-label">Order Status</label> 
<div class="col-lg-3"> 
<input type="text" input style="width:500px" class="form-control" name="order_status" id="order_status" placeholder="" value="" required="required" readonly> 
</div> 
</div> 

    <?php 
    if(isset($_POST['ORDER_ID'])){ 
$order_id = trim(addslashes($_POST['ORDER_ID'])); 
$sql = "SELECT food_name, special_request, quantity, amount 
FROM cart_tbl 
WHERE order_id=$order_id"; 
$result = mysqli_query(connection2(), $sql);} 
?> 
<table class="table table-hover table-bordered"> 
<thead> 
<tr> 
<th>Food</th> 
<th>Special Request</th> 
<th>Quantity</th> 
<th>Amount</th> 
</tr> 
</thead> 
<?php 
if(mysqli_num_rows($result)>0) 
{ 
    while($row = mysqli_fetch_array($result)) 
    { 
?> 
<tr> 
<td><?php echo $row["food_name"];?></td> 
<td><?php echo $row["special_request"];?></td> 
<td><?php echo $row["quantity"];?></td> 
<td><?php echo $row["amount"];?></td> 
</tr> 
<?php 
    } 
} 
?> 

</table> 
</div> 
<div class="modal-footer"> 
<button type="submit" input style="background-color:##FF0000;color:white;float:left" name="showFood" id="showFood" class="btn btn-primary " onclick="if(!confirm('Are you sure you want to see food order?')){return false;}" > Show Food</button> 
<button type="submit" input style="background-color:#4CAF50;color:white" name="submitDelivered" id="submitDelivered" class="btn btn-primary " onclick="if(!confirm('Are you sure you want to deliver order?')){return false;}" > Delivered </button> 
// HERE IT IS\\ <button type="submit" input style="background-color:#0000FF;color:white" name="submitAccept" id="submitAccept" class="btn btn-primary" onclick="if(!confirm('Are you sure you want to accept order?')){return false;}" <?php if($_POST['$order_status']="Accepted"): ?> disabled <?php endif ?> > Accept </button> 
<button type="button" style="background-color:#FFFF00;color:black" class="btn btn-success" data-toggle="modal" data-target="#myDropdown"> Send </button> 
<button type="submit" input style="background-color:#f44336;color:white" name="submitCancel" class="btn btn-danger" onclick="if(!confirm('Are you sure you want to cancel order?')){return false;}">Cancel</button> 
    <?php 
if(isset($_POST['submitDelivered'])){ 
    $order_id = trim(addslashes($_POST['ORDER_ID'])); 
    $driver_number= trim(addslashes($_POST['drivers_number'])); 
    $query = "UPDATE order_tbl SET `order_status`='Delivered' WHERE `order_id` = $order_id"; 
    if (mysqli_query(connection2(), $query)) { 
     mysqli_query(connection2(), "COMMIT"); 
     $_SESSION['message'] = "Order Delivered"; } 
     else { 
     $_SESSION['message'] = mysqli_error(connection2()); 
     mysqli_query(connection2(), "ROLLBACK"); 
     } 

    if($_POST['drivers_number']!=0){  
    $query2 = "UPDATE driver_tbl SET `order_id`='' WHERE `driver_number` = $driver_number"; 
    if (mysqli_query(connection2(), $query2)) { 
     mysqli_query(connection2(), "COMMIT"); 
     } 
    } 
    } 

    if(isset($_POST['submitAccept'])){ 
    $order_id = trim(addslashes($_POST['ORDER_ID'])); 
    $driver_number= trim(addslashes($_POST['drivers_number'])); 
    $query = "UPDATE order_tbl SET `order_status`='Accepted' WHERE `order_id` = $order_id"; 
    if (mysqli_query(connection2(), $query)) { 
     mysqli_query(connection2(), "COMMIT"); 
     $_SESSION['message'] = "Order Accepted"; } 
     else { 
     $_SESSION['message'] = mysqli_error(connection2()); 
     mysqli_query(connection2(), "ROLLBACK"); 
     } 

    if($_POST['drivers_number']!=0){  
    $query2 = "UPDATE driver_tbl SET `order_id`='' WHERE `driver_number` = $driver_number"; 
    if (mysqli_query(connection2(), $query2)) { 
     mysqli_query(connection2(), "COMMIT"); 
     } 
    } 
    } 


    if(isset($_POST['submitCancel'])){ 
    $order_id = trim(addslashes($_POST['ORDER_ID'])); 
    $driver_number= trim(addslashes($_POST['drivers_number'])); 
    $query = "UPDATE order_tbl SET `order_status`='Cancelled' WHERE `order_id` = $order_id"; 
    if (mysqli_query(connection2(), $query)) { 
     mysqli_query(connection2(), "COMMIT"); 
     $_SESSION['message'] = "Order Cancelled"; } 
     else { 
     $_SESSION['message'] = mysqli_error(connection2()); 
     mysqli_query(connection2(), "ROLLBACK"); 
     } 

    if($_POST['drivers_number']!=0){  
    $query2 = "UPDATE driver_tbl SET `order_id`='' WHERE `driver_number` = $driver_number"; 
    if (mysqli_query(connection2(), $query2)) { 
     mysqli_query(connection2(), "COMMIT"); 
     } 

    } 
    } 

    ?> 

</div> 
</form> 
</div> 
</div> 
</div> 

相続人 を派遣したり、保留されたボタンを受け入れる私はまた、このコードを試みたが、ナッシングが起こります。

<script type='text/javascript'> 
    $(function() { 
     ($order_status).keyup(function(){ 
      if ($order_status == 'Accepted') { 
       ('.submitAccept').prop('disabled',true); 
      }else{ 
       ('.submitAccept').prop('disabled', false); 
      } 
    }) 
    }; 
); 

    </script> 
+0

JavaScriptコードにエラーがあります。 – epascarello

+0

@espascarelloああ本当ですか?私のJSの男の何が間違っていますか? –

+0

ウェブデベロッパーコンソールにエラーがあります。 '$ order_status'はどこに定義されていますか? – epascarello

答えて

0

JSコードが正しくありません。また、readonlyフィールド以来、order_statusの値がどのように設定されているのかよく分かりません。

$(function() { 
    ($("#order_status").keyup(function(){ 
     if ($("#order_status").val() == 'Accepted') { 
      ('.submitAccept').prop('disabled',true); 
     }else{ 
      ('.submitAccept').prop('disabled', false); 
     } 
    }) 
}; 
); 
+0

コードが動作しません。間違っていると思われる人は –

+0

ユーザーはorder_statusの値を入力する必要がありますか? – Himan

+0

なぜ、その読み取り専用なのですか –

0

コードは、例えばHTMLのエラーを含む複数のエラー、含まれています:「ORDER_STATUSは」入力の名前であることを指定するには

<input type="text" input style="width:500px" 
class="form-control" name="order_status" 
id="order_status" placeholder="" value="" 
required="required" readonly> 

を、あなただけのコード「の入力」が必要に一度の代わりに、入力タグで2回

JavaScriptも修正が必要です。 HTML要素 "order_status"を参照するには、jQueryの正しい構文は$( "#order_status")です。そして、別の要素 "sumbitAccept"があります。これはjQueryで$("#submitAccept").と呼ばれています。また、読み取り専用入力を更新するコードも追加しました。

function doAccepted() { 
 
    $('#order_status').val('Accepted'); 
 
    $('#submitAccept').prop('disabled',true).css({"background-color":"#ccc"}); 
 
    if(!confirm('Are you sure you want to accept order?')){ 
 
    $('#order_status').val('Accepted').val(""); 
 
    $('#submitAccept').prop('disabled',false).css({"background-color":"#00f"}); 
 
    return false; 
 
    } 
 
    else 
 
    { 
 
     return true; 
 
    }  
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button type="submit" style="background-color:#0000FF;color:white" name="submitAccept" id="submitAccept" class="btn btn-primary" onclick="doAccepted()"> Accept </button> 
 

 
<div class="form-group"> 
 
<label for="order_status" class="col-sm-2 control-label">Order Status</label> 
 
<div class="col-lg-3"> 
 
<input type="text" style="width:500px" class="form-control" name="order_status" id="order_status" placeholder="" value="" required="required" readonly> 
 
</div> 
 
</div>

// error in the PHP: 
<?php 
if($_POST['$order_status']="Accepted"): ?> disabled <?php endif ?> > 
Accept </button> 

平等のためのテストを行うために「=」「==」とを交換してください - それはあなたが書き換えた場合、あなたは避けることができ、一般的なエラーと一つですこの種の形式に従ったコード:

​​

これは、PHPが起こるのを待っている問題だと言いました。をコードに使用する前に、提出されたフォームの値を汚染されたものとして常に検証し、検証したり、をフィルタリングしたりする必要があります。

最後に、フォーム要素を読み取り専用にしているということは、安全であるとは限りません。悪意のある意図を持つ人は誰でもそのフォームを偽装して読み取り専用のプロパティを削除してフォームを送信できます。

もうひとつ、PHPはHTMLコードにPHPを埋め込むことができたため、人気の波に乗っていましたが、それは必ずしも最良のアイディアではありません。 MVCとも呼ばれるモデルビューコントローラーモデルに続いて懸念を抱くのがずっと良いです。デバッグが容易で、コードとアーキテクチャがより堅牢になります。

+0

Readonly Broを更新する必要があるのですか?ボタンをクリックすると自動的に更新されます。 order_statusがディスパッチまたは保留中であっても、すべてのorder_statusをAcceptedに設定します。 –

+0

@OnePunchベストアンダーに基づいてコードを修正しましたあなたのコメントを並べ替えることは正しいかもしれないし、そうでないかもしれないが、これはあなたのためにうまくいくかもしれないことを願っています。 – slevy1

関連する問題