json与ajax结合使用以在另一个新页面上获取数据,但是即使使用e.preventDefault()也可以重新加载页面;功能

时间:2018-08-22 06:01:56

标签: javascript php jquery json ajax

我想在另一个新页面上获得价值并在不刷新的情况下打开新页面 我在这里使用post方法,我正在使用json来获取价值 我是这个Ajax代码的新手

我想从team.php控制器页面移至team_detail.php,而无需刷新页面

我正在使用team.js文件

$( ".all_athlete_list2" ).on( "click", function(e) {
     e.preventDefault();
   var av = $(this).attr("data-json1");
   var av2 =   JSON.parse(av);
    $.ajax({
      type: 'POST',
      url: 'team_details',
      data: {'teamId1=' : av2},
      complete: function(data){
       location.href = "team_detail;

      }
    });

}); 

我的html部分我正在使用锚标记来获取价值

team.php文件,其中我正在使用定位标记移动具有值的另一个页面

   <?php foreach ($data['teams'] as $key => $value) { ?>
      <tr> <td>                               
        <a class="all_athlete_list2" style="color:black" data-json1='<?php 
         echo json_encode($value['team_id'], TRUE); ?>' data- 
         block="team_form_block" data-form="team_form" > <?php echo 
         $value['team_name']; ?>
       </a> 
    </td></tr>   
  <?php } ?>   

我在女巫中的控制器部分,我想使用post方法获取“ temId1”,但不获取teamId1的值 这是此页面上的Team_detail.php页面,我想使用ajax进行赋值,而无需刷新页面,请在单击锚标记时打开HTML页面的Team_details新页面

public function index() {
 $userType = $this->session->userData('userType');
    $gymAccountId = '';
    if($userType == 1){
        $acountListResp = $this->Common->fetch_account('');            
        $data['data']['accounts'] = $acountListResp;
    }else{            
        $gymAccountId = $this->session->userData('gym_account_id');
    }
    $jk =  $this->input->get(); 
    $data1 = $jk['teamId1'];

    $athletesListResp = $this->Common->fetch_athletes($gymAccountId);
    $coachesListResp = $this->Common->fetch_coaches($gymAccountId);
    $teamListResp = $this->Team_details->fetch_team($data1);
    $fetch_coach_list = $this->Team_details->fetch_coach(); 

    $data['data']['athletes'] = $athletesListResp;
    $data['data']['coaches'] = $coachesListResp;
    $data['data']['teams'] = $teamListResp;
    $data['data']['coach_data'] = $fetch_coach_list;

   $this->load->template(array("Portal/Team_details" => ""), $data);
}

在模型中,我正在使用简单的选择查询来获取数据,但是在模型中,在条件不显示teamId1的值的情况下,空白值显示

这是Team_details.php模块页面

public function fetch_team($data1){
             $all_id = $data1;
  $query = $this->db->query("SELECT u1.first_name 'first_name(coach_name)',
       u2.first_name 'first_name(athlete_name)',
       dtt.team_id,
       dtt.team_name
FROM dev_team dtt 
INNER JOIN dev_teams_athlete  dtta on dtt.team_id = dtta.team_id
LEFT JOIN dev_user u1 on dtt.user_id = u1.user_id
LEFT JOIN dev_user u2 on dtta.user_id = u2.user_id  where dtt.team_id = '$all_id' ");

       $result = $query->result_array();
       return $result;
      }
  

我想要没有页面刷新的值,并使用   值   我想用查看页面上“ Team_detail”中的值重定向页面

2 个答案:

答案 0 :(得分:2)

我在您的team.js脚本中看到一个synthax错误:使用

data: {teamId1 : av2},

代替

data: {'teamId1=' : av2},

答案 1 :(得分:0)

这是否有助于您将方向设置正确?

$( ".all_athlete_list2" ).on( "click", function(e) {
  e.preventDefault();
  var av = $(this).attr("data-json1");
  var av2 =   JSON.parse(av);
  $.ajax({
    type: 'POST',
    url: 'team_details',
    data: {'teamId1=' : av2},
    complete: function(data){
      $.ajax({
        type: 'GET',
        url: 'team_detail',
        complete: function(data){
          // do something here with your response
        }
      });
    }
  });
});