2016-10-24 2 views
0

Я прочитал несколько решений этой проблемы, но ни один из них не работает для меня. У меня есть два файла manageadmin.php и rejectaction.php. Файлы manageadmin.php предоставляют пользователю возможность отклонить администратора. когда пользователь нажимает на статус администратора кнопки отклонения, должен быть установлен на ноль.PHP-файл не может читать несколько параметров из Jquery ajax

Вот мой исходный код

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> 

rejectaction.php

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

Это работает хорошо, но потом я понял, что мне это было нужно отклонять код для многократного страницы. Поэтому я подумал о передаче имени таблицы, столбца, который нужно обновить, и столбца, который будет проверяться в том случае, когда условие является параметром. Это модифицированный код:

<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- function-in-php). *** [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовлен] (http://en.wikipedia.org/wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http: // php .net/manual/en/mysqli.quickstart.prepared-statements.php) и подумайте об использовании PDO, [это действительно довольно легко] (http://jayblanchard.net/demystifying_php_pdo.html). –

+0

[Маленький Бобби] ​​(http://bobby-tables.com/) говорит *** [ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can- я-не допустить, SQL-инъекцию-в-PHP) ***. Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! –

+0

Вы просматривали запрос/ответ AJAX в инструментах разработчика браузера? Включили ли вы библиотеку jQuery в проект? Есть ли сообщения об ошибках? Вы используете это на веб-сервере? –

ответ

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

[Маленький Бобби] ​​(http://bobby-tables.com/) говорит, что *** [ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php) *** Узнайте о [подготовленных] (http://en.wikipedia.org/wiki/Prepared_statement) операторах для [MySQLi] (http://php.net/manual /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) –

Смежные вопросы