2015-05-04 6 views
0

Я пытаюсь использовать Codeigniter для создания приложения, когда при нажатии кнопки он добавит 1 в столбец INT в таблице.Таблица обновления Codeigniter при нажатии кнопки

Существует 3 кнопки и в зависимости от того, какая кнопка нажата, она обновит один из 3 столбцов, добавляя значение.

У меня такое, когда пользователь регистрируется, что имя пользователя и пароль, с которыми они вступают в систему, устанавливаются в таблицу со входами.

Таблица:

+--+--------+--------+--------+--------+----------+ 
|ID|Password|Username|inputOne|inputTwo|inputThree| 
+--+--------+--------+--------+--------+----------+ 
| |  |  |  |  |   | 
| |  |  |  |  |   | 
+-------------------------------------------------+ 

После того, как пользователь вошел в систему, это должно быть записано

+--+--------+--------+--------+--------+----------+ 
|ID|Password|Username|inputOne|inputTwo|inputThree| 
+--+--------+--------+--------+--------+----------+ 
|1 |Pass |User1 |  |  |   | 
| |  |  |  |  |   | 
+-------------------------------------------------+ 

мне нужно только это, чтобы обновить столбец в зависимости от того, какая кнопка нажата. Другие столбцы не должны добавлять. Пока эта кнопка не будет нажата.

Я также пытаюсь сделать это, чтобы страница не перенаправлялась при нажатии кнопки.

процесса:

Посмотреть

<script src="<?php echo site_url('application/views/js/buttons.js')?>"></script> 
    <form method="post"> 
    <input class="btn btn-lg btn-success" type="submit" id="inputOne" value="Button One"><br><br> 
    <input class="btn btn-lg btn-primary" type="submit" id="inputTwo" value="Button Two"><br><br> 
    <input class="btn btn-lg btn-danger" type="submit" id="inputThree" value="Button One"> 
    </form> 

buttons.js

$(document).ready(function(){ 

$("#inputOne").click(function() 
{ 
$.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>index.php/home/view", 
    data: {"1"}, 
    success: 
      function(){ 
      sleep(5); //STOP POST 
      } 
     }); 
return false; 
}); 

$("#inputTwo").click(function() 
{ 
$.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>index.php/home/view", 
    data: {"1"}, 
    success: 
     function(){ 
      sleep(5); //STOP POST 
     } 
    }); 
return false; 
}); 

$("#inputThree").click(function() 
{ 
$.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>index.php/home/view", 
    data: {"1"}, 
    success: 
     function(){ 
      sleep(5); //STOP POST 
     } 
    }); 
return false; 
}); 


}); 

Контроллер

public function buttons() { 
if (!$this->session->userdata('username')){ 
    redirect (base_URL(). 'index.php/login/view'); 
} else { 
    if (!$this->session->userdata('password')) { 
    redirect (base_URL(). 'index.php/login/view'); 
    } else { 
    if (date('H:i:s') > $this->session->userdata('endTime')) { 
    redirect (base_URL(). 'index.php/login/view'); 
    } else { 
    $this->model->load('buttons_model'); 
    } 
    } 
} 
} 

Модель

<?php 

class buttons_model extends CI_Model { 


     public function __construct() 
    { 
      parent::__construct(); 
    } 


public function alterinput() { 

    $Username = $this->session->userdata('username'); 
$Password = $this->session->userdata('password'); 

$sql = "UPDATE input 
SET inputOne = (inputOne + 1), 
    inputTwo = (inputTwo + 1), 
    inputThree = (inputThree + 1) 
WHERE (classPassword = '" . $Username . "', 
    Username = '" . $Password . "') "; 

     $this->db->query($sql); 

    //--------------------------------------- 
    // END OF FILE 
    //--------------------------------------- 
} 

Где я буду неправильно в попытке получить столбцы для обновления в зависимости от нажатия кнопки?

Ошибка я получаю то, что я не могу получить значения вводить отдельно, когда одна кнопка нажата только inputOne следует добавить и остальные не должны

В качестве примера, если я нажал одну кнопку, пока Я вошел в систему как User1 таблица должна выглядеть так:

+--+--------+--------+--------+--------+----------+ 
|ID|Password|Username|inputOne|inputTwo|inputThree| 
+--+--------+--------+--------+--------+----------+ 
|1 |Pass |User1 |1  |  |   | 
| |  |  |  |  |   | 
+-------------------------------------------------+ 
+0

Пожалуйста, поделитесь код для процесса обновления вы пытались и объяснить, что это ошибка или проблема у вас есть – Lupin

+0

Добавлено процесса от просмотра, контроллера и модели. Также объяснила ошибку, которую я получаю. – Lero

+0

На какую страницу звонит AJAX? где вы используете альтернативный метод? почему все три кнопки нажимают событие одинаково? – Lupin

ответ

2

Вам потребуется одно событие щелчка для всех кнопок, которая выполняет запрос AJAX к контроллеру, который делает ваш процесс, как только заканчивается контроллер, и вы хотите для обновления БД, вызова модели и метода обновления на + 1.

JS

$(".btn-lg").on('click', function(e){ 
    e.preventDefault(); // this will prevent the defualt behavior of the button 

    // find which button was clicked 
    butId = $(this).attr('id'); 

    $.ajax({ 
      method: "POST", 
      url: "/controllerDummy/run/", 
      data: { button: butId } 
     }) 
     .done(function(msg) { 
     // do something 
     });   
}); 

Контроллер

// first get the button that was pressed 
button = $_POST['button']; // will be the id of the button that was clicked 

// do your code here..... 

// once completed load the model and run the method of updating... 
$this->load->model('button_model'); 
$this->button_model->methodName(); 

// if you need it only for specific buttons use an if statement 
+0

Я использовал if ($ button == "inputOne") {update one} else if ($ button == "inputTwo) {update two} else if ($ button == "inputThree" {update three} внутри моей модели, но по какой-то причине, когда я нажимаю кнопку, он добавляет имя пользователя и пароль в другую строку. URL: «/ home/view» - это то, как он установлен в моем JavaScript. – Lero

+0

От отладки похоже, что даже не работает JavaScript. Правильно ли мой HTML-код? – Lero

+0

Вы передаете переменную модели? – Lupin

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