Как передать значение из контроллера в JQuery при просмотре в codeigniter - PullRequest
0 голосов
/ 14 января 2019

Я изучаю веб-программирование с использованием framework codeIgniter, я пытаюсь отправить значение из функции в контроллере в сценарий запроса, который находится в поле зрения. это код моего контроллера:

public function passData(){
        $pass = "the new value";
        return $pass;
    }

код в поле зрения:

<h3 id="tesrow">the value I want change</h3>

<script type="text/javascript">
    $(document).ready(function() {
        $('#btn-filter').click(function(){ //button filter event click
            table.ajax.reload(),  //just reload table
            $('#tesrow').text({
                "ajax": {
                    url : "<?php echo site_url("main/passData") ?>",
                }
            })
        });
    });
</script>

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

Ответы [ 4 ]

0 голосов
/ 21 января 2019

попробуйте это:

1. Javascript

<script type="text/javascript">
$(document).ready(function() {
    $('#btn-filter').click(function(){ //button filter event click
        table.ajax.reload(),  //just reload table
        $.ajax({
           url: "<?php echo site_url("main/passData") ?>",
           type: "POST",
           dataType: "json",
           success: function(data) {
               $('#tesrow').text(data.result);
           }
        });
    });
});
</script>

2. Контроллер

public function passData(){
    $pass = "the new value";
    echo json_encode(array("result" => $pass));
}
0 голосов
/ 14 января 2019

на контроллере

   public function passData(){
        $pass = "the new value";
        echo "<p>".$pass."</p>";
    }

и по вашему сценарию ..

   <script type="text/javascript">
      $('#btn-filter').click(function(){ 
        $( '#tesrow' ).load( "<?php echo site_url("main/passData") ?>" );
      });
    </script>

попробуйте это ..

контроллер расширяет класс ci_controller .. поэтому вы не можете вернуть строку .. в методе контроллеров .. return используется для изменения имени метода ..

0 голосов
/ 14 января 2019

используйте base_url для этого в вашем ajax.these значение параметра будет поступать из контроллера.

function method_name(parameter, parameter, that) {
    $.post(base_url + "controller/method_name", {parameter: parameter_name, parameter: parameter_name}, function (data) {

}
0 голосов
/ 14 января 2019

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

   // The jQuery 
   $(document).ready(function() {
        $('#btn-filter').click(function() {
            let $this = $(this);
            $.ajax({
                url: '/myController/myFunction',
                type: 'POST',
                dataType: 'text',

                beforeSend: function() {
                    $this.prop('disabled', true);
                },
                success: function(data) {
                    if(data) {
                        $this.text(data);
                    }
                },
                complete: function() {
                    $this.prop('disabled', false);
                }
            });
        });
    });

    // The PHP function
    public function myFunction() {
        $pass = "the new value";
        echo $pass;
        return;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...