2017-09-15 69 views
0

我正在使用select2在一个输入元素中获取多个成员名称。这里是我的Ajax代码:(我form.php的内侧)

 $('#student_vgroup').submit(function(event){ 
     event.preventDefault(); 

     var name = $('#select2_demo_2').val(); 
     var day = $('#day_vgroup').val(); 
     var venue = $('#venue_vgroup').val(); 
     var time = $('#time_vgroup').val(); 

     $.post(
      'includes/vgroup-func.php', 
      { 
      member_name: name, 
      day: day, 
      venue: venue, 
      time: time, 
      leader_id: id 
      }, 
      function(result){ 
      if (result == "success") { 
       location.reload(); 
      } else { 
       $('.error-message-vgroup').load("includes/vgroup-func.php", { 
       member_name: name, 
       day: day, 
       venue: venue, 
       time: time, 
       leader_id: id 
       }); 
      } 
      } 
     ); 
    }); 

我有这样的代码在我的服务器端:(我只写了主意,因为它太长)

validation.php

<?php 
    $day = mysqli_real_escape_string($conn, $_POST['day']); 
    $venue = mysqli_real_escape_string($conn, $_POST['venue']); 
    $time = mysqli_real_escape_string($conn, $_POST['time']); 

    if(!isset($_POST['member_name'])) { 
     echo "enter member names"; 
    } else { 
     foreach($_POST['member_name'] as $selectedOptions) { 

      *query data from database to check if one of the members selected 
      already exists in my group. 
      *query data form database to check if one of the members selected is 
      my leader. 
      *query data from database to check if one of the members selected 
      already belongs to someone else's group. 

      if (already exists in my group) { 
      echo "Cannot add. Already in your group"; 
      } elseif (is my leader) { 
      echo "Cannot add leader"; 
      } elseif (belongs to someone else) { 
      echo "Cannot add from someone else's group"; 
      } elseif (empty($day)) { 
      echo "Enter day"; 
      } elseif (empty($venue)) { 
      echo "Enter venue"; 
      } elseif (empty($time)) { 
      echo "Enter time"; 
      } else { 
      *insert data to the database 
      echo "success"; 
      } 
     } 
    } 

?> 

我的问题是,验证工作得很好。但它似乎并没有在我的ajax函数(result)调用中进入'成功'状态。成功得到回报在div标签与类“错误消息vgroup”我的错误消息去,而不是重新加载页面。有人可以帮帮我吗?

+1

添加'的console.log(结果);'正确的函数(结果)后''{您的JS看到我所看到的PHP前后加空格服务器响应 – Rulisp

+0

。尝试修剪响应字符串。正如Rulisp console.log所提到的那样,这将是调试的第一步。 console.log(“AA”+结果+“AA”)在前后添加内容,以便知道是否有空格。 –

+0

感谢您的建议..现在,我已将console.log(result)放在我的函数(result)之后,但它不会在控制台中显示任何内容。然而,尽管我忘了提及,但是一旦它通过所有验证约束,数据实际上会被插入到数据库中,但它不会重新加载页面。所以作为回报,错误消息说'不能添加。已经在你的团队'被称为.. –

回答

1

你可以试着从循环外部以这种方式返回你的输出。

$output = ""; 
foreach($_POST['member_name'] as $selectedOptions) { 

     *query data from database to check if one of the members selected 
     already exists in my group. 
     *query data form database to check if one of the members selected is 
     my leader. 
     *query data from database to check if one of the members selected 
     already belongs to someone else's group. 

     if (already exists in my group) { 
     $output = "Cannot add. Already in your group"; 
     } elseif (is my leader) { 
     $output ="Cannot add leader"; 
     } elseif (belongs to someone else) { 
     $output ="Cannot add from someone else's group"; 
     } elseif (empty($day)) { 
     $output ="Enter day"; 
     } elseif (empty($venue)) { 
     $output ="Enter venue"; 
     } elseif (empty($time)) { 
     $output ="Enter time"; 
     } else { 
     *insert data to the database 
     $output ="success"; 
     } 
    } 

    echo $output; 
    exit; 
+0

你是一个救星!谢啦!我不知道为什么我没有想到这一点。我特意处理这个问题,我忘记了尽可能简单的调试。再次感谢! –

+0

@Eric您的欢迎。我很高兴知道你的问题已经解决。 –