如何使用jQuery在同一页面中返回函数的结果?

时间:2011-10-07 12:57:25

标签: php jquery codeigniter

这很简单,但我似乎无法在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 个答案:

答案 0 :(得分:2)

使用提交按钮将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,然后您可以在其中更改页面或者您想要执行的操作。

答案 1 :(得分:0)

这是$_SERVER["PHP_SELF"]。请记住,对于帖子(除非使用ajax调用),需要刷新页面。