jQuery仅在循环的第一行

时间:2015-12-04 16:03:29

标签: javascript php jquery validation

这是我在这里发表的第一篇文章,所以如果格式错误,我会提前道歉。

我正在处理一个表单,该表单使用循环从MySQL中提取数据并将其输出到HTML页面。然后,用户可以选择批准或拒绝这些条目,并且应该根据用户选择验证或者是必需的。我当前的代码将正确验证,但仅适用于从循环输出的第一行。我正在尝试验证所有行。我尝试过使用while循环和foreach语句但没有成功。任何帮助将不胜感激!

My Loop&表格:

  //connect  to the database 
  $db=mysqli_connect('localhost','root','') or die ('I cannot connect to the database  because: ' . mysql_error()); 
  //-select  the database to use 
  $mydb=mysqli_select_db($db,"my_db") or die(mysql_error());
  //-query  the database table 
  $sql="SELECT id, date, client_name, client_number, date_completed, status FROM clients WHERE client_name LIKE '%" . $search  ."%' OR status LIKE '%" . $search  ."%' "; 
  //-run  the query against the mysql query function 
  $result=mysqli_query($db, $sql); 
  //-count  results 
  $rows=mysqli_num_rows($result);

  if($rows=mysqli_num_rows($result)) { 
  echo  "<h2 style='margin-left: 10em;margin-bottom: -0.4em;'><br><br><br>" . $rows . " result(s) found for " . $search . "</h2><br />"; 
  }elseif($rows=mysqli_num_rows($result) == 0) {
  echo  "<h2 style='margin-left: 10em;margin-bottom: -0.4em;'><br><br><br>0 result(s) found for " . $search . "</h2><br />";        
  }
  //-create  while loop and loop through result set 
  while($row=mysqli_fetch_assoc($result)){ 

  $id=$row['id'];
  $date=$row['date'];
  $client_name=$row['client_name'];
  $client_number=$row['client_number'];
  $date_completed=$row['date_completed'];
  $status=$row['status'];

    echo "<form  method='post' enctype='multipart/form-data' action=''>";
    echo "<table border='0'>";
    echo  "<tr>\n";
    echo  "<td>Timestamp</td><td>Client Name</td><td>Client Number</td>Status</td><td>Date Completed & Returned</td><td>Upload Zip Files</td>\n";
    echo  "</tr>";
    echo  "<tr>\n";
    echo  "<td readonly class='date'>$date</td>\n";
    echo  "<td><input readonly type='text' id='client_name' name='client_name' value='$client_name'></td>\n";
    echo  "<td><input readonly type='text' id='client_number' name='client_number' value='$client_number'></td>\n";
    echo  "<td><select id='status' name='status' aria-invalid='false'>
    <option value=''>Select an option</option>
    <option value='Denied'>Denied</option>
    <option value='Approved'>Approved</option>
    </select></td>\n"; 
    echo  "<td><input type='date' id='date_completed' name='date_completed_returned' value='$date_completed'></td>\n"; 
    echo  "<td><input type='file' id='upload' name='upload'></td>"; 
    echo  "<td class='submit'><input type='hidden' id='hidden' name='hidden' value='$client_name'><input type='submit' id='save' name='save' value='Save'></td>\n"; 
    echo  "</tr>"; 
    echo "</table>";
    echo "</form>";
   }

我的jQuery代码:

我正在尝试使用date_completed并上传所需的字段,如果用户选择&#34;已批准&#34;在状态字段下,如果他选择&#34;拒绝&#34;。

,则是可选的
    <script>      
    $('#status').on('change', function() {
    if ( this.value == 'Approved')
    $("#date_completed").prop('required',true)  
    }).trigger("change"); // notice this line

    $('#status').on('change', function() {
    if ( this.value == 'Approved')
    $("#upload").prop('required',true)
    }).trigger("change"); // notice this line
    </script>

1 个答案:

答案 0 :(得分:0)

感谢KevinB,我能够找到解决问题的方法。

我为我尝试验证的输入字段(status,date_completed,upload)添加了类名称:

更新了以下代码:

echo "<form  method='post' enctype='multipart/form-data' action=''>";
echo "<table border='0'>";
echo  "<tr>\n";
echo  "<td>Timestamp</td><td>Client Name</td><td>Client Number</td>Status</td><td>Date Completed & Returned</td><td>Upload Zip Files</td>\n";
echo  "</tr>";
echo  "<tr>\n";
echo  "<td readonly class='date'>$date</td>\n";
echo  "<td><input readonly type='text' id='client_name' name='client_name' value='$client_name'></td>\n";
echo  "<td><input readonly type='text' id='client_number' name='client_number' value='$client_number'></td>\n";
echo  "<td><select id='status' name='status' class='status' aria-invalid='false'>
<option value=''>Select an option</option>
<option value='Denied'>Denied</option>
<option value='Approved'>Approved</option>
</select></td>\n"; 
echo  "<td><input type='date' id='date_completed' name='date_completed' class='date_completed' value='$date_completed'></td>\n"; 
echo  "<td><input type='file' id='upload' name='upload' class='upload'></td>"; 
echo  "<td class='submit'><input type='hidden' id='hidden' name='hidden' value='$client_name'><input type='submit' id='save' name='save' value='Save'></td>\n"; 
echo  "</tr>"; 
echo "</table>";
echo "</form>";

<script>
$('.status').on('change', function() {
if ( this.value == 'Approved')
$('.date_completed').prop('required',true)  
}).trigger("change"); // notice this line

$('.status').on('change', function() {
if ( this.value == 'Approved')
$('.upload').prop('required',true)
}).trigger("change"); // notice this line
</script>