2016-10-13 1 views
0

Remarque: S'il vous plaît garder à l'esprit que je ne sais pas JavaScript et je sais que PHP fondamentale.plugin FooTables (à DataTables semblable) - Comment récupérer la colonne et ligne de données à partir d'un serveur/base de données

J'ai cherché haut, bas, loin, & large. J'ai même essayé d'apprendre des JS pour trouver une solution. Mais j'ai échoué à toutes les fins. Cette question, étonnamment n'existe pas sur ce site. Donc, il n'y a pas de question en double ici. Veuillez également ne pas confondre cette question avec d'autres questions concernant le chargement de grands ensembles de données (une grande quantité de lignes) à partir d'un fichier json. Ces questions existent et je sais déjà comment faire cela.

Avec le plug-in DataTables, c'est facile. Et il y a une documentation pour vous montrer comment faire cela exactement. Malheureusement, cela n'existe pas sur le site Web de fooTable.

Here is the only page that FooTables has that is even close to what I need. Décomposer de la question comme il s'appliquerait à tout le monde:

  • Le tableau de la page utilise le plug-in FooTable
  • Il y a 10.000 lignes de données dans une base de données.
  • Le propriétaire du site Web doit connecter la base de données à la table
  • La table a une pagination. 10 lignes par page
  • Seulement 10 lignes doivent être chargées lors du chargement de la page. Pas toute la base de données des enregistrements.
  • Lors du chargement de la page, la table extrait 10 lignes de la base de données et 10 lignes seulement accélèrent la vitesse de la page.

C'est essentiellement ce que je dois.

Toute aide à ce sujet est appréciée Je l'ai été pendant 2 semaines sans résultats positifs. S'il vous plaît gardez également à l'esprit que je ne connais pas JavaScript et je ne connais que PHP fondamental. Merci d'avance!

EDIT: Est-ce la façon correcte de faire rows.php?

<?php 
// rows 
$rowData = array(
    'id' => $id, 
    'firstName' => $firstName, 
    'something' => $something, 
    'jobTitle' => $jobTitle, 
    'started' => $started, 
    'dob' => $dob, 
    'status' => $status 
); 

header('Content-Type: application/json'); 
echo json_encode($rowData, JSON_UNESCAPED_SLASHES); 

Répondre

0

Le "chargement à partir d'un fichier JSON" est en fait pertinent.

Sur la page vous liez, ils fournissent ce code:

jQuery(function($){ 
    $('.table').footable({ 
     "columns": $.get('columns.json'), 
     "rows": $.get('rows.json') 
    }); 
}); 

Cela fait une requête AJAX au serveur pour récupérer les données d'un fichier JSON, mais il ne doit pas être d'un fichier tant que le serveur répond avec des données JSON.

Donc ce que vous feriez à la place est $.get('/columns.php') pour obtenir les données de colonne, et $.get('/rows.php') pour obtenir les données de ligne. More on $.get here.

Puis, à l'intérieur columns.php, vous devez faire vos appels de base de données, retirez vos données, structurent la same as this et and this puis json_encode il.

Maintenant, je sais que vous avez dit que vous ne savez pas de JS et seulement un peu de PHP, mais vous allez devoir apprendre un peu, parce que je ne suis pas écrire tout ce code pour vous;)


<?php // columns.php 
$data = array (
    array (
     'name' => 'id', 
     'title' => 'ID', 
     'breakpoints' => 'xs sm', 
     'type' => 'number', 
     'style' => 
      array (
       'width' => 80, 
       'maxWidth' => 80, 
      ), 
    ), 
    array (
     'name' => 'firstName', 
     'title' => 'First Name', 
    ), 
    array (
     'name' => 'lastName', 
     'title' => 'Last Name', 
    ), 
    array (
     'name' => 'something', 
     'title' => 'Never seen but always around', 
     'visible' => false, 
     'filterable' => false, 
    ), 
    array (
     'name' => 'jobTitle', 
     'title' => 'Job Title', 
     'breakpoints' => 'xs sm', 
     'style' => 
      array (
       'maxWidth' => 200, 
       'overflow' => 'hidden', 
       'textOverflow' => 'ellipsis', 
       'wordBreak' => 'keep-all', 
       'whiteSpace' => 'nowrap', 
      ), 
    ), 
    array (
     'name' => 'started', 
     'title' => 'Started On', 
     'type' => 'date', 
     'breakpoints' => 'xs sm md', 
     'formatString' => 'MMM YYYY', 
    ), 
    array (
     'name' => 'dob', 
     'title' => 'Date of Birth', 
     'type' => 'date', 
     'breakpoints' => 'xs sm md', 
     'formatString' => 'DD MMM YYYY', 
    ), 
    array (
     'name' => 'status', 
     'title' => 'Status', 
    ), 
); 

header('Content-Type: application/json'); 
echo json_encode($data, JSON_UNESCAPED_SLASHES); 

Ceci est exactement la même chose que l'exemple columns.json de fooTable, juste en PHP.

Maintenant qu'il est en PHP, vous pouvez extraire vos données de la base de données au lieu de les coder en dur. Je ne sais pas à quoi ressemble votre base de données, donc je ne pourrais pas écrire ce code même si je le voulais. Rows.php ressemblera à peu près au même, juste un format de tableau différent.

+0

Merci pour la réponse. Ok, c'est exactement comme cela que j'ai installé ma table. Juste sans votre $ .get ('/ columns.php') et $ .get ('/ rows.php') je le tire des fichiers json mais je veux tirer du serveur à la place. Je vais lire les liens que vous avez fournis pour voir si je peux comprendre et comment implémenter ceci. Nous vous contacterons. répondez s'il vous plaît que vous avez reçu ma réponse. Merci encore. Dans votre réponse, y a-t-il des conseils que vous pouvez donner pour configurer ceci avec php? –

+0

Ouais, je ne connais pas assez PHP et JS pour pouvoir faire ça. Je comprends le concept mais je suis totalement perdu. On dirait que tout ce travail a été pour rien. Merci d'avoir essayé d'aider. –

+0

Y at-il de toute façon vous pouvez me montrer à quoi cela ressemblera une fois terminé? Dans l'exemple, vous pouvez utiliser seulement 3 colonnes et quelques lignes et à partir de là, je peux l'éditer à la façon dont j'ai besoin de travailler? Je vais vous payer si vous voulez, je n'ai pas beaucoup mais j'ai vraiment besoin de cela. –