2016-05-31 5 views
1

データベースから情報を選択して表示するテーブルがあります。ボタンをクリックしてカラムを更新するコードを誰かが提供できるのですか?ボタンのクリックに関する情報テーブルを更新する

例表:私のexisitingボタンは、ブートストラップに基づいて

ID - Name - Access 
--------------------------- 
1 - John - 1 
--------------------------- 
2 - Ben  - 1 
--------------------------- 
3 - Terry - 0 
--------------------------- 

(アクセス=ブール値)、

<button type=\"button\" id=\"passed\" class=\"btn btn-success btn-flat\"><i class=\"fa fa-check\"></i></button> 
    <button type=\"button\" id=\"insufficient\" class=\"btn btn-danger btn-flat\"><i class=\"fa fa-times\"></i></button> 

私はこのような何かを期待していた、ONCLICKボタン1を実行$可SQL ONCLICKボタン2実行$ NotAllowed SQL

$allowed = mysqli_query($conn," UPDATE users SET Access = "1" WHERE id = '27' ");  
$notallowed = mysqli_query($conn," UPDATE users SET Access = "0" WHERE id = '453' "); 
+0

あなたはphpというタグを付けました。 postメソッドを持つフォームと名前付き属性を持つボタンのサブミットタイプを使用し、条件付きステートメントで使用します。 JS/jQuery/ajaxもオプションです –

+0

あなたは試しました UPDATEユーザーSETアクセス= "1"( '27'、 '453'、 'YourValue3'、 'YourValue')のID またはAccess = "1"、Access = "0"? – Sami

+0

@Samiそれは何についての質問ではないです。もう一度読む。 –

答えて

2

ポスト・メソッド、および名前付き属性を持つボタンのサブミット・タイプを使用し、条件付きステートメント内のそれらを使用します。

すなわち:

追記:私はそれらがすでにエコーの内側に設定されたかどうかわからなかったので、私は、エスケープ引用符を削除しました。

HTMLフォーム:

<form method="post" action="handler.php"> 

    <button type="submit" name="passed" id="passed" class="btn btn-success btn-flat"><i class="fa fa-check"></i></button> 
    <button type="submit" name="insufficient" id="insufficient" class="btn btn-danger btn-flat"><i class="fa fa-times"></i></button> 

</form> 

PHP:これは、任意の時点で任意のユーザーとの対話を持っている場合

<?php 

// db connection 

if(isset($_POST['passed'])){ 

    $allowed = mysqli_query($conn," UPDATE users SET Access = "1" WHERE id = '27' "); 

} 

if(isset($_POST['insufficient'])){ 

    $notallowed = mysqli_query($conn," UPDATE users SET Access = "0" WHERE id = '453' "); 

} 

脚注:

UPDATEクエリを実行している、それは絶対truthnessためmysqli_affected_rows()を使うのがベストです。

そうしないと、偽陽性を得ることができます。

0

ボタンはフロントエンド(javascript)で実行されていますが、データベースを更新するSQLはバックエンド(php)上で実行されているため、これら2つを一緒に接続する必要があります。

function updateUserAccess(user_id, access) { 
    var d = { user_id: user_id, access: access }; 
    $.post('update.php', d); 
} 

し、各ボタンは次のようになります。

<button type="button" id="passed" class="btn btn-success btn-flat" onclick="updateUserAccess(<?= $user->id ?>, 1)"><i class="fa fa-check"></i></button> 
<button type="button" id="passed" class="btn btn-success btn-flat" onclick="updateUserAcces(<?= $user->id ?>, 0)"><i class="fa fa-check"></i></button> 

あなたのクエリが、その後update.phpに行くだろうし、あなたがdにで渡しているjavascriptのデータが$_POSTで利用できるようになります。このすべてと今

は、いくつかのこと、言われている:

  1. 私はあなたの引用符をエスケープしている理由、それは控えめに言って少し珍しいわかりません。あなたがmixing your logic and markup which isn't a good habitでない限り、ほとんど確実に必要ではありません。
  2. 私が与えたコードはうまくいきますが、通常はイベントバインディングが表示マークアップ、つまりhere it is in raw javascripthere in jquery (with some explanation)から分離されているのが見たいので最適ではありません。
  3. 変更を送信するためにAJAXを使用する必要はありません。Fredがフォームで行うことができるようになったためです。 AJAXはフォームが一般的にリフレッシュを引き起こすページをリフレッシュさせることはありません(特に指示しない限り)。
  4. 最後に、あなたのニーズ/ユースケースに応じて、PHPでの現代のフレームワークとそれらが提供するものについて少し学ぶことをお勧めします。プロフェッショナルなWeb開発(および "近代的な" PHPコード)では、彼らが使用/奨励するパターンは、Webアプリケーションを作成するために使用される古いファイルごとのスタイルよりはるかに優れています。 「MVC Pattern」をチェックし、それを使用するいくつかのフレームワークはCodeIgniter、CakePHP、Laravelです。すべてはかなり簡単に始めることができ、始めることができます。
+0

ちょっと、ちょうどこれを見て、それは丸く行くために長い道のりに見える、それは多くのようですより高度な人々は、最小限のコードを使用して、より簡単な方法と思われるフォーム。 –

+0

@SheaLavingtonこれはもう少しタイプするものですが、いったん使用していると(私は非常に長い間ほとんど何もフォームを使用していませんでした)定期的にフォームよりも複雑ではありません。また、できることには大きな柔軟性があります。 – Cryptic

関連する問題