Как вернуть результат функции на той же странице, используя jQuery? - PullRequest
0 голосов
/ 07 октября 2011

Это просто, но мне кажется, что я не могу этого сделать в Codeigniter.

При использовании простого php это должно быть:

<form id="volume" method="post" action="<?php echo $PHP_SELF;?>">
<label>length(cm):</label>
<input type="text" name="length">
<label>width(cm):</label>
<input type="text" name="width">
<label>height(cm):</label>
<input type="text" name="height">
<button type="submit">Submit</button>
</form>


<?php

$length = $_POST["length"];
$width = $_POST["width"];
$height = $_POST["height"];
$variable = 5000;

$sum_total = ($length * $width * $height) / $variable;

printf ("%01.2f" , $sum_total);

?> kg

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

Спасибо всем заранее за ваши ответы.

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

Поместите jQuery, похожий на этот, на страницу с помощью кнопки отправки.

$(document).ready(function(){
  $('#volume').submit(function(event){
    event.preventDefault();

    var post_array = {
        length: $('input[name=length]').val();
        width: $('input[name=width]').val();
        // etc
    };

    $.post('path/to/controller/method', post_array, function(data){
        alert(data); // do stuff;
    }

    return false; //to stop the form from submitting
  });
});

Поместите PHP, который вычисляет результат, в 'path / to / controller / method' и получите его return $result;.

Когда пользователь нажимает кнопку отправки, он отправляет запрос ajax вашему новому представлению и возвращает результат в jQuery, где вы можете затем изменить страницу или желаемую работу.

0 голосов
/ 07 октября 2011

Это $_SERVER["PHP_SELF"]. Имейте в виду, что для сообщения (если не используются вызовы ajax) требуется обновление страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...