Simple PHP tâche de mise à jour de la base de données avec des boutons radio
Front-end designer ici, pas un développeur PHP et j'ai vraiment besoin de l'aide. Besoin de faire un système qui permet au client de se connecter à leur propre zone pour mettre à jour une table. La table aura environ 20 dossiers et chaque ligne est édité avec des boutons radio (4 choix). Seulement 2 colonnes, l'une pour l'ID et un statut " (les données modifiables).
Le spectateur ne verra que les modifications apportées par le client et dans un contexte de changement de couleur de la ligne en fonction du statut, ce qui signifie que l'modifiable partie devra tenir 2 pièces de données (valeur entière de changer de couleur et le nom de l'état, par exemple, la valeur du bouton radio à changer de couleur, et l'étiquette de bouton pour faire écho au texte dans la cellule). Portera sur le système de connexion plus tard...
Base de données:
Database: test
Table: fire_alert
Structure:
id (INT, PRIMARY); color(INT); warning(VACHAR);
connect.php
:
<?php
//Database Variables (edit with your own server information)
$server = 'localhost';
$user = 'root';
$pass = 'root';
$db = 'test';
//Connect to Database
$connection = mysql_connect($server, $user, $pass)
or die("Could not connect to server ... \n" . mysql_error());
mysql_select_db($db)
or die("Could not connect to database ... \n" . mysql_error());
?>
view.php
:
<div id="container">
<?php
//connect to the database
include('connect.php');
include("header.php");
//get results from database
$result = mysql_query("SELECT * FROM fire_alert")
or die(mysql_error());
echo "Current date - " . date("Y/m/d") . "<br /><br />";
//display data in table
echo "<table>";
echo "<tr> <th>Area</th> <th>Status</th></tr>";
//loop through results of database query, displaying them in the table
while($row = mysql_fetch_array($result)) {
//echo out the contents of each row into a table
echo "<tr>";
echo '<td>' . $row['id'] . '</td>';
echo '<td>' . $row['warning'] . '</td>';
echo "</tr>";
}
//close table>
echo "</table>";
echo '<td><a href="edit.php' . $row['id'] . '">Change Area Status</a></td>';
?>
</div>
<body>
</body>
</html>
edit.php
(accès au client uniquement) pas dynamique de changement des données encore, figée dans le code HTML de la mesure:
<?php include("header.php"); ?>
<?php include("connect.php"); ?>
<div id="container" class="edit">
<div id="radio1">
<?
$result = mysql_query("SELECT * FROM fire_alert")
or die(mysql_error());
echo "Current date - " . date("Y/m/d") . "<br /><br />";
?>
<table class="edit">
<tr><th>Area</th><th>Status</th></tr>
<tr>
<td>1</td>
<td>
<form method="post" action="edit.php">
<input type="radio" id="radio1" name="radio" value="1" /><label for="radio1">Safe</label>
<input type="radio" id="radio2" name="radio" value="2" /><label for="radio2">Caution L1</label>
<input type="radio" id="radio3" name="radio" value="3" /><label for="radio3">Caution L2</label>
<input type="radio" id="radio4" name="radio" value="4" /><label for="radio4">Closed</label>
</form>
</td>
</tr>
</table>
</div>
<?php echo '<td><a href="view.php' . $row['id'] . '">Update</a></td>'; ?>
</div>
OriginalL'auteur Doctype Designer | 2011-04-13
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple pour exécuter cette mise à jour (ou de la façon dont j'utilise de toute façon) est en tirant parti de javascript. Demandez à chaque section de la radio blocs dans sa propre formulaire qui envoie automatiquement onChange, et d'inclure une variable cachée pour indiquer la page de soumission. Ensuite, il suffit d'écrire une fonction pour mettre à jour la base de données, basée sur la saisie de l'utilisateur id (ou le cependant vous êtes à la validation) et leur choix de sélection...
Quelque chose comme:
Vous avez un problème avec la façon dont vous avez formaté votre view.php lien, cette ligne devrait être comme suit:
'Mise à jour'; ?>'
Bien que le ci-dessus ne sont pas tout à fait le travail que vous avez l'intention puisqu'il n'est pas de la soumission du formulaire, de sorte que le bouton radio valeurs ne sera pas passé... au lieu que vous devriez faire:
Et vous aurez besoin de modifier votre php pour refléter cette différence ainsi
OriginalL'auteur DaOgre