2010-03-28 6 views
1

Je conçois un planificateur de tâches pour une entreprise et j'ai besoin d'aide pour afficher un tableau dynamique contenant les détails du personnel. J'ai les tables suivantes dans la base de données MySQL: Staff, Event, et Job. La table d'état-major contient les détails du personnel (personnel, nom, adresse ... etc), la table des événements (eventide, eventName, Fromdate, Todate ... etc) et la table des jobs (Jobid, Jobdate, Eventid (fk), Staffid (fk)). J'ai besoin d'afficher dynamiquement la liste de staff disponible depuis la table de staff quand l'utilisateur sélectionne l'EVENEMENT et la DATE (3 déroulements: date, mois et année) depuis un formulaire PHP. Je dois afficher les membres du personnel qui n'ont pas été affectés à la date sélectionnée en cochant la case Date du travail dans la table des travaux. J'ai été à ceci pour toute la journée et ne peux pas le contourner. J'apprends toujours le PHP et apprécierais sûrement n'importe quelle aide que je peux obtenir. Mon code actuel affiche tous les membres du personnel lorsqu'un événement est sélectionné:Besoin d'aide pour afficher une table dynamique

if(isset($_POST['submit'])) 
{ 
$eventId = $_POST['eventradio']; 

} 
$timePeriod = $_POST['timeperiod']; 
$Day = $_POST['day']; 
$Month = $_POST['month'];  
$Year = $_POST['year']; 
$dateValue = $Year."-".$Month."-".$Day; 
$selectedDate = date("Y-m-d", strtotime($dateValue)); 

//construct the available staff list 
if ($selectedDate) 
    { 
     $staffsql = "SELECT s.StaffId, s.LastName, s.FirstName 
     FROM Staff s 
     WHERE s.StaffId NOT IN 
     (SELECT J.StaffId 
     FROM Job J 
     WHERE J.JobDate = ".$selectedDate.")"; 
     $staffResult = mysql_query($staffsql) or die (mysql_error()); 

    } 
if ($staffResult){ 
    echo "<p><table cellspacing='1' cellpadding='3'>"; 
    echo "<th colspan=6>List of Available Staff</th>"; 
    echo "</tr><tr><th> Select</th><th>Id</th><th></th><th>Last Name 
     </th><th></th><th>First Name </th></tr>"; 

    while ($staffarray = mysql_fetch_array($staffResult)) 
    { 
     echo "<tr onMouseOver= this.bgColor = 'red' onMouseOut =this.bgColor = 'white' bgcolor= 
      '#FFFFFF'> <td align=center><input type='checkbox' name='selectbox[]' 
      id='selectbox[]' value=".$staffarray['StaffId']."> 
      </td><td align=left>".$staffarray['StaffId']." 
      </td><td>&nbsp&nbsp</td><td align=center>".$staffarray['LastName']." 
      </td><td>&nbsp&nbsp</td><td align=center>".$staffarray['FirstName']." 
      </td></tr>"; 
    } 
     echo "</table>"; 
    } 
    else { 
     echo "<br> The Staff list can not be displayed!"; 
    }  
    echo "</td></tr>"; 
    echo "<tr><td></td>"; 
    echo "<td align=center><input type='submit' name='Submit' value='Assign Staff'>&nbsp&nbsp"; 
    echo "<input type='reset' value='Start Over'>"; 
    echo "</td></tr>"; 
    echo "</table>"; 

Répondre

0

Vous devez faire 1 de 2 choses.

a.) Ajouter un événement onchange à votre liste de sélection et faire un appel AJAX à votre serveur pour retirer les données de la table, ou

b.) Ajouter un événement onchange à votre liste de sélection et soumettre le formulaire/page elle-même (y compris donc la valeur sélectionnée dans la liste de sélection

Dans votre PHP (de toute façon) à l'aide du paramètre à la demande (si elle existe) charger les données applicables.

+0

Merci pour la réponse. Je J'utilise PHP tout au long ... donc la deuxième option semble appropriée Je pense à utiliser un bouton de soumission pour confirmer la date déroulante comme ceci: Vous ne savez pas si c'est exact et vous n'êtes pas sûr de la requête sql non plus. Je suis un peu nouveau pour ça ... Merci encore! – Gideon

+0

La meilleure requête serait avec la fonction MINUS mais MySQL ne supporte pas cela. Donc, j'ai essayé de ne pas fonctionner comme ci-dessus mais cela ne fonctionne que dans certains cas .... s'il vous plaît aider! Merci beaucoup! – Gideon

Questions connexes