2010-10-25 6 views
3

J'ai créé la grille en utilisant des tables, mais je n'arrive pas à comprendre comment permettre à l'utilisateur de sélectionner une case spécifique dans la grille. (c.-à-d. l'utilisateur sélectionne 3 boîtes, chacune ayant des coordonnées xy, que je devrais stocker dans une base de données)HTML/PHP - J'ai besoin de créer une grille de 10 par 10 avec 100 cases, chacune doit être sélectionnable

Peut-être que je ne devrais pas utiliser des tables et utiliser plutôt des divs?

Toute aide serait appréciée.

NOTE: Je suis un débutant en PHP alors s'il vous plaît ne présumez pas que je sais beaucoup :)

Répondre

2

Il ne semble pas que les questions de mise en page pour votre problème, que ce soit une table ou div fondée. Si je comprends bien, vous devez obtenir des coordonnées comme 3-2 au cas où l'utilisateur clique sur la case située sur le 3ème cas de la 2ème colonne.

Pour ce faire, il vous suffit d'utiliser un tableau de tableau pour vos variables.

<input type="checkbox" name="boxes[<?php echo $i;?>][<?php echo $j;?>]" value="1" /> 

Ensuite, vous incrémenter i et j variables correctement pour obtenir les noms des boîtes de boîtes [0] [0] à des boîtes [9] [9].

Enfin, du côté du serveur lorsque l'utilisateur soumet le formulaire, vous pouvez vérifier les valeurs comme ça:

$boxes = $_POST['boxes']; 
for (int i=0; i<9; i++) { 
    for (int j=0; j<9; j++) { 
    if (isset($boxes[$i][$j])) { 
     // here you have your coordinates for a selected box 
    } 
    } 
} 
0

La plupart dépend de ce que vous avez à faire, mais cet exemple simple devrait faire exactement ce dont vous avez besoin . Envisagez d'utiliser un framework JS.

<style> 
td{empty-cells: show;} 
</style> 
<script> 
function cellSelected(this,i,q) 
{ 
    alert("Cell ("+i+","+q+")"); 
} 
</script> 
<?php 
echo '<table>'; 
for($i=0;$i<10;$i++) 
{ 
    echo '<tr>'; 
    for($q=0;$q<10;$q++) 
    { 
    echo '<td onClick="cellSelected(this,'.$i.','.$q.')"></td>'; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 
?> 
+0

Je comprends ce que cela fait. Avoir un problème, cependant: Erreur d'analyse: erreur de syntaxe, inattendu '=', attendez ';' dans /Users/satjotsawhney/localhost/boxes/test1.php à la ligne 21 ligne 21 est: pour (i = 0; i <10; i ++) – Satjot

+0

Dans la section PHP, nous avons probablement besoin d'utiliser $ i et $ q . – JSchaefer

+0

@JSchaefer, @Satjot: changement de langue trop souvent ne permet pas, quelques erreurs de syntaxe désolé :) – Cesar

0

Je m'écarterais des tables en général.

Si vous avez fait une grille de boutons, sous une forme, vous pouvez:

  • Modifier leur style pour ressembler à des cellules
  • Soumettre le formulaire lorsque l'utilisateur clique
  • Utilisez les données POST à mettre en évidence celui qui a été cliqué
0

Merci à tous.

Voici ce que je fini par faire

  • id assignés de chaque cellule/td [00] - [99]
  • appelé onclick une fonction qui est stockée id de la cellule dans une entrée cachée
  • record les valeurs dans l'entrée cachée lors de la soumission d'un formulaire

Trier les deux solutions combinées ci-dessus. J'espère pouvoir contribuer à ces discussions à mesure que j'apprends un peu plus.

Questions connexes