2016-10-24 9 views
0

私はこの問題に対する複数の解決策を読んでいますが、それらのどれも私にとってはうまくいかないようです。私はmanageadmin.phpとrejectaction.phpの2つのファイルを持っています。 manageadmin.phpファイルは、管理者を拒否するボタンをユーザーに提供します。人が拒否ボタンをクリックしたとき、管理ステータスをゼロに設定する必要があります。ここでPHPファイルがJquery ajaxから複数のパラメータを読み取ることができません

は私の最初のコード

$reject_id=$_POST['reject_id']; 
    $reject_query="UPDATE tbl_admin set admin_status=0 where admin_id='$reject_id'"; 
    mysql_query($reject_query); 

rejectaction.php

manageadmin.php

<script type="text/javascript"> 
$(document).ready(function() 
    { 
     /* reject */ 
     $(".reject_btn").click(function(){ 

     var element = $(this); 
     var reject_id = element.attr('reject_id'); 
     $.ajax({ 
      type: "POST", 
      url: "rejectaction.php", 
      data: {reject_id:reject_id}, 
      success: function(){ 
       alert("Reject Successful"); 
       location.reload(); 
      } 
     }); 

     }); 
    }); 
</script> 

は、これが正常に動作しますが、その後、私は、これは、複数のコードを拒否する必要なことに気づいていますページ。だから私は、テーブル名、更新される列とチェックされる列をパラメータとして条件を渡すことを考えました。

<script type="text/javascript"> 
$(document).ready(function() 
    { 
     /* reject */ 
     $(".reject_btn").click(function(){ 

     var element = $(this); 
     var reject_id = element.attr('reject_id'); 
     var tbl_name = "tbl_admin"; 
     var column_reject = "admin_status"; 
     var column_cond = "admin_id"; 
     $.ajax({ 
      type: "POST", 
      url: "rejectaction.php", 
      data: {reject_id:reject_id, tbl_name:tbl_name, 
       column_cond:column_cond, 
       column_reject:column_reject}, 
      success: function(){ 
       alert("Reject"); 
       location.reload(); 
      } 
     }); 

     }); 
    }); 
</script> 

rejectaction.php

$reject_id=$_POST['reject_id']; 

    $tbl_name = $_POST['tbl_name']; 
    $column_cond = $_POST['column_cond']; 
    $column_reject = $_POST['column_reject']; 

    $reject_query="UPDATE '$tbl_name' set '$column_reject' = 0 where '$column_cond'='$reject_id'"; 


// $reject_query="UPDATE tbl_admin set admin_status=0 where admin_id='$reject_id'"; 
    mysql_query($reject_query); 

このコードは動作しない(つまり、更新取得されていない状態である): これが変更されたコードです。しかし、alert("Reject Successful")が実行されています。私は初心者です。誰でも私が作った間違いを指摘できますか?おかげ

+0

***してください[ 'mysql_ *'関数を使用して停止](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql- functions-in-php)*** [これらの拡張機能](http://php.net/manual/en/migration70.removed-exts-sapis.php)はPHP 7で削除されました。[prepared] [PDO](http://php.net/manual/en/pdo.prepared-statements.php)と[MySQLi](http:// php(http://en.wikipedia.org/wiki/Prepared_statement) .net/manual/en/mysqli.quickstart.prepared-statements.php)、PDOの使用を検討してください(http://jayblanchard.net/demystifying_php_pdo.html)。 –

+0

[Little Bobby](http://bobby-tables.com/)によると*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-in-php)***。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –

+0

ブラウザの開発者ツールでAJAXリクエスト/レスポンスを見たことがありますか?プロジェクトにjQueryライブラリを含めましたか?エラーが報告されていますか?あなたはこれをWebサーバー上で実行していますか? –

答えて

1

は別に(良い)からあなたはコメントを受け、アドバイス[また、この答えの下で見て]、ここではあなたの主な問題は、probalyあなたが$table_name$column_reject、および引用符の間に$column_condを巻いているという事実です。

あなたが書くべき

$reject_query = 
    "UPDATE $tbl_name set $column_reject = 0 where $column_cond='$reject_id'"; 
+0

私の間違いを指摘してくれてありがとう。それは本当に愚かな間違いだった!! –

+0

@JanakyMurthy喜んで助けてください。あなたは私の答えを受け入れることを検討するかもしれませんか? – cFreed

+0

[Little Bobby](http://bobby-tables.com/)は*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされていると言います。](http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php)*** [MySQLi](http://php.net/manual)の[prepared](http://en.wikipedia.org/wiki/Prepared_statement)ステートメントについて学びます。 /en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! [それを信じていない?](http://stackoverflow.com/q/38297105/1011527) –

関連する問題