2016-04-05 2 views
0

Следующие коды отправляют данные контроллеру с использованием метода Ajax CodeIgniter jQuery. После нажатия на кнопку введите введенное значение. Я хотел бы не только отобразить значение, введенное пользователем, но сравнить это значение с данными в базе данных, если введенное значение существует в базе данных. Форма должна отображать, если значение не существует, форма не должна отображаться, но это значение должно быть все еще отображено , У меня есть модель, которая проверяет значение, но я не знаю, как использовать его в контроллере.Отображение формы ввода значения

Ваша помощь настолько оценена!

Контроллер

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
public function __construct() 
{ 
    parent::__construct(); 

    $this->load->model('get_value'); 

} 
class Ajax_Post_Controller extends CI_Controller { 

// Show view Page 
public function index(){ 
$this->load->view("ajax_post_view"); 
} 

// This function call from AJAX 
public function user_data_submit() { 
$data = array(
    'username' => $this->input->post('name') 

    ); 

echo json_encode($data); 
} 
} 

Посмотреть

<script type="text/javascript"> 

// Ajax post 
$(document).ready(function() { 
$(".submit").click(function(event) { 
event.preventDefault(); 
var user_name = $("input#name").val(); 

jQuery.ajax({ 
type: "POST", 
url: "<?php echo base_url(); ?>" + "index.php/ajax_post_controller/user_data_submit", 
dataType: 'json', 
data: {name: user_name}, 
success: function(res) { 
if (res) 
{ 
// Show Entered Value 
jQuery("div#result").show(); 
jQuery("div#value").html(res.username); 

} 
} 
}); 
}); 
}); 
</script> 
<?php 

// Form Open 
echo form_open(); 

// Name Field 
echo form_label('User Name'); 
$data_name = array(
'name' => 'name', 
'class' => 'input_box', 
'placeholder' => 'Please Enter Name', 
'id' => 'name' 
); 
echo form_input($data_name); 
echo "<br>"; 

?> 
    </div> 
    <div id="form_button"> 
    <?php echo form_submit('submit', 'Submit', "class='submit'"); ?> 
    </div> 
    <?php 
    // Form Close 
    echo form_close(); ?> 

модель

function get_search_form() { 
$match = $this->input->post('name'); 
$this->db->where('name',$match); 
$query = $this->db->get('transaction'); 
return $query->result(); 

ответ

0

После того, как вы загрузили модель с использованием $this->load->model('get_value') Вы можете использовать this->get_value, который имеет в виду модели

Допустим, мы имеем эту простую CodeIgniter User модель:

class User extends CI_Model{ 

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

    function checkUser($id){ 
     // here some code to check if the user exists in db 
    } 


    function addUser($data){ 
     // here some code to add users 
    } 

    // ... and here other methods to do the other 'crud' operations 
} 

И при загрузке предыдущей модели внутри контроллера, вы можете назвать его например, чтобы проверить, существует ли пользователь, как показано в этом примере:

class Home extends CI_Controller{ 

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

     // load the user model 
     $this->load->model('User'); 
    } 

    function checkUser($id){ 
     // now make use of the 'User model' 
     if(this->User->checkUser($id)){ 
     // display the appropriate message 
     } 

    } 

} 

Надеюсь, это поможет.

+0

Моя проблема заключается в том, как интегрировать функцию checkuser в функцию, которая отправляет значение post. После того, как пользователь нажмет, проверка будет выполнена, а введенное значение будет отображаться ... – baptpro

+0

Когда пользователь нажимает «проверить проданный», используйте jquery '' $ .post'' для отправки почтового запроса на нужную страницу, например '' $ .post ('localhost/mysite/home.php/checkuser/1', {}, function (serverResponse) { console.log (serverResponse); }); '' – Ismail

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