2012-03-27 124 views
0

我试图让一个HelloWorld类节目与REST CI/jQuery的工作。我包括我的(确实简陋)REST控制器,查看文件和JavaScript文件,我希望这是一直困扰我的错误在你跳出。REST笨,jQuery的/ AJAX不显示响应

两个问题:

  1. 我从服务器获取的响应不会被显示 - 画面被刷新,而不是(我知道这是我错过了一些非常基本的东西)。如果我单步执行代码,则会看到结果的显示,但屏幕会刷新。不知何故,我无法进入我的“成功”功能。为什么,哦,为什么?

2.成功后,我想将用户重定向到另一个网址,例如www.google.com。我会在JavaScript文件中执行此操作吗?或服务器端?

预先感谢您对我的帮助!

[增加了解决问题后:我的问题无关,与REST或笨。一个纯粹的JavaScript的问题] 其余控制器:

<?php 
    require APPPATH.'/libraries/REST_Controller.php'; 

    class Myex extends REST_Controller { 
     function contact_post(){ 
     $result=array(); 
     $fname=$this->post('fname'); 
     $lname=$this->post('lname'); 
     $result['message']="contact_post has your name"; 
     $result['fname']=$fname."XX"; 
     $result['lname']=$lname."YY"; 
     $this->response($result,200); 
     } 
    } 
?> 

视图文件:

<?php $this->load->view('includes/header')?> 
    <div id="input-div"> 
     <form name="cookieform" id="login" method="post"> 
      First Name: <input type="text" name="fname" id="fname" class="text"/> 
      Last Name: <input type="text" name="lname" id="lname" class="text"/> 
      <input type="submit" name="submit" value="Submit" id='submit' class="page"/> 
     </form> 
    </div> 
    <div id="resp-div"> 
    response goes here 
    </div> 
<?php $this->load->view('includes/footer')?> 

JavaScript文件:

function postsuccess(output) { 
    $('#soln-div').html(output.message +'for user '+output.fname+' whose last name is '+output.lname).show('slow'); 
} 
function post_contact() { 
    $('#submit').click(function(){ 
     var output; 
     var fdata,res; 
     var furl=global_siteurl+'/myex/contact'; 
     var fname=$('#fname').val(); 
     var lname=$('#lname').val(); 
     fdata='fname='+fname+'&lname='+lname; 
     res=$.ajax({ 
     url: furl, 
     type: 'POST', 
     dataType: 'json', 
      data:fdata, 
      success: function(output) { 
       postsuccess(output); 
      } 
     }); 
    }); 
} 
$(document).ready(function() { 
    get_contact(); 
    post_contact(); 
}); 

回答

2
  1. 您曾呼吁提交你的Ajax功能的形成可以防止页面清爽在两个方面:
    (a)使用<input type="button" />,而不是提交打电话给你的AJAX功能上的这个按钮或
    (B)中Ajax请求你的成功的功能使用return false;

  2. 可以使用window.top.location = 'url-to-redirect';

+0

谢谢谢谢谢谢你重定向到任何URL在JavaScript!结果发现*与REST没什么关系,一切都与我可怜的JavaScript技能有关。非常感谢,沙燕! – user1072910 2012-03-29 19:29:45

+0

很高兴帮助你... :) – 2012-03-30 05:50:40