我是ajax初学者,在这里我试图使用Ajax在同一页面中显示文本框值。
我的控制器代码:
<?php
class Merchant extends CI_Controller
{
public function ajaxtest()
{
$this->load->helper('url');
$this->load->view('ajaxtest');
$fullname = $this->input->post("fullname");
echo $fullname;
}
}
?>
这是我的观看代码:
<head>
<script src="<?php echo base_url();?>assets/js/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#getinfo").click(function()
{
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>merchant/ajaxtest",
data: {textbox: $("#fullname").val()},
dataType: "text",
cache:false,
success:
function(data){
$('#mytext').html(data);
}
});
return false;
});
});
</script>
</head>
<body>
<form method="post">
<input type="text" id="fullname"/>
<input type="button" value="getinfo" id="getinfo"/>
<span id="mytext"></span>
</form>
</body>
当我点击按钮getinfo时,我想将文本框内的文本显示为span文本。但现在它什么都没有显示..
更新:
专家&#39;意见,我编辑了一些文字(见我的编辑说明),现在当我点击按钮时,它再次显示一个文本框和一个按钮.. !!
答案 0 :(得分:2)
您是否使用Javascript上的链接设置了base_url
变量?
因为您的帖子网址包含此变量,您需要将其设置为使其正常工作。因此,使用base_url
链接初始化变量。
请参阅下面的更正示例。设置您的域名而不是yourbaseurl.com
<script type="text/javascript">
$(document).ready(function(){
var base_url='http://yourbaseurl.com/index.php/';
$("#getinfo").click(function()
{
$.ajax({
type: "POST",
url: base_url + "merchant/ajaxtest",
data: {textbox: $("#fullname").val()},
dataType: "text",
cache:false,
success:
function(data){
$('#mytext').html(data);
}
});
return false;
});
});
</script>
答案 1 :(得分:1)
您将文本框作为参数从ajax传递到控制器并尝试获取名称为fullname的POST数据。这不起作用,因为您将参数名称作为文本框传递,请在帖子中访问,如:
class Merchant extends CI_Controller
{
public function ajaxtest()
{
$this->load->helper('url');
//you dont need to load view so comment it
//$this->load->view('ajaxtest');
$fullname = $this->input->post("textbox"); //not fullname
echo $fullname;
}
}
JS
<script type="text/javascript">
$(document).ready(function(){
var base_url='http://yourbaseurl.com/index.php/';
$("#getinfo").click(function() {
var fullname = $("#fullname").val();
alert("Fullname:" + fullname); //do you get this alert
$.ajax({
type: "POST",
url: base_url + "merchant/ajaxtest",
data: {textbox: fullname},
cache:false,
success:function(data){
alert("Response:" + data); //do you get this alert
$('#mytext').html(data);
}
});
return false;
});
});
</script>
答案 2 :(得分:1)
您的$('.progress-bar').filter(function(){ return $(this).css('width') === "10%"; });
变量似乎未在JavaScript中定义。
获取基本URL的一种简单方法是在隐藏输入中回显它,然后在JS代码中获取该输入的值:
base_url
<input type='hidden' id="baseUrl" value="<?php echo base_url(); ?>" />
答案 3 :(得分:0)
尝试使用:
<base href="<?=base_url();?>">
<script src="assets/js/jquery-latest.min.js"></script>
这是在ajaxtest:
$this->load->helper('url');
还要评论这个:
// $this->load->view('ajaxtest');
答案 4 :(得分:0)
这个回复可能会有点迟到 - 但有人可能会在寻找解决方案时发现这一点。 我在Codeigniter和JQuery ajax / post响应时遇到了同样的问题。无论我尝试什么,我都无法工作。 最后,结果是导致问题的php_error。一旦我将其删除,我的帖子/回复一切正常。