2015-12-08 1 views
0

У меня есть несколько форм на одной странице. Все формы используют Ajax для отправки данных на PHP и тех же имен классов. Я пытаюсь отправить форму, она работает, но div.error отображается в первой форме. Я имею в виду, когда я отправлю 5-ю форму, ошибка будет показана в первой форме.Несколько форм на странице, Ajax показывает ошибку в неправильной форме

<?php 
    $sql = "SELECT * FROM `table` WHERE `datetime` BETWEEN '"$day1" 07:00:00' AND '"$day2" 06:59:59'"; 
    $query = mysql_query($sql); 
    while($result=mysql_fetch_assoc($query)){ ?> 

    <form method="post" action="process.php" id="<?php echo $result["id"];?>"> 
      <div id="error"></div> 
      <h4>Select</h4><label class="col-xs-5 btn btn-info btn-sm"><input type="radio" name="team" id="team" value="A" required>A</label> 
      <label class="col-xs-5 col-xs-offset-2 btn btn-danger btn-sm"><input type="radio" name="team" id="team" value="B" required>B</label> 
       Point <input type="input" id="point" name="point" placeholder="Point" size="8"> 
      <button type="submit" class="btn btn-success login-bt" id="<?php echo $result["id"];?>"><i class="fa fa-sign-in"></i>Submit</button> 
       <img id="loading" src="images/ajax-loader.gif" alt="working.."/> 
        </form> 
    <?php } ?> 

JQuery Часть

<script type="text/javascript"> 
$(document).ready(function() { 
    $("form").submit(function() { 
     hideshow('loading',1); 
     error(0); 
     var formID = $(this).attr('id'); 
     var formDetails = $('#'+formID); 
     $.ajax({ 
      type: "POST", 
      url: 'process.php', 
      data: formDetails.serialize(), 
      dataType: "json", 
      success: function(msg){ 
      if(parseInt(msg.status)==1) 
      { 
       window.location=msg.txt; 
      } 
      else if(parseInt(msg.status)==0) 
      { 
       error(1,msg.txt); 
      } 
      hideshow('loading',0); 
     } 
    }); 
     return false; 
    }); 
}); 

function hideshow(el,act) 
{ 
    if(act) $('#'+el).css('visibility','visible'); 
    else $('#'+el).css('visibility','hidden'); 
} 

function error(act,txt) 
{ 
    hideshow('error',act); 
    if(txt) $('#error').html(txt); 
} 
</script> 
<style type="text/css"> 
     #loading{ 
      left:10px; 
      position:relative; 
      top:3px; 
      visibility:hidden; 
     } 
     #error{ 
      margin: 10px 10px 0px; 
      padding: 10px 5px; 
      border-radius: 5px; 
      background-color:#ffebe8; 
      border:1px solid #dd3c10; 
      padding:7px 3px; 
      text-align:center; 
      visibility:hidden; 
     } 
     </style> 

PHP Часть

<?php 
include("include/database.php"); 
if(empty($_POST['team']) || empty($_POST['point'])) 
{ 
    die(msg(0,"Please Fill in the form")); 
} 
if(empty($_COOKIE['id']) || empty($_COOKIE['email']) || empty($_COOKIE['password']) || empty($_COOKIE['displayname'])) 
{ 
    die(msg(0,"Please Login")); 
} 


// echo msg(1,"/Done.php"); 
$sql = "INSERT INTO SQL"; 
$sqlquery = mysql_query($sql) or die(mysql_error()); 
echo msg(1,"Done"); 

function msg($status,$txt) 
{ 
    return '{"status":'.$status.',"txt":"'.$txt.'"}'; 
} 

?> 

Как я могу показать ошибки при определенной форме, которая была представлена? Любая помощь будет принята с благодарностью. Большое спасибо

+0

Div Id должен быть уникальным в каждом виде. И в соответствии с формой вам нужно отобразить ошибку внутри этого Div. –

+0

Я не хочу, чтобы цикл