Εμφάνιση 1-8 από 8
  1. #1
    Εγγραφή
    07-04-2011
    Ηλικία
    38
    Μηνύματα
    49
    Downloads
    0
    Uploads
    0
    Καλησπέρα σας,
    Έχω δημιουργήσει έναν html users table με 3 κελιά (username, userlevel και update) και θα ήθελα μια function η οποία να κρατάει το username, να κάνει το userlevel από 1 σε 2 και να συνδέεται με ένα άλλο αρχείο .php στο οποίο θα γίνεται κ το update στην βάση..
    Έχει κανείς καμία ιδέα;

  2. #2
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Η στήλη update έχει κάποιο κουμπί για κάθε χρήστη;
    Το userlevel θα πηγαίνει πάντα από το 1 στο 2 ή το αυξάνεις γενικά κατά 1, δηλαδή πάει και από το 2 στο 3;
    Τη function στην php που θα κάνει το update την έχεις;

    Αν σου είναι εύκολο, βάλε και το html που έχεις φτιάξει.

  3. #3
    Εγγραφή
    07-04-2011
    Ηλικία
    38
    Μηνύματα
    49
    Downloads
    0
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από axxis Εμφάνιση μηνυμάτων
    Η στήλη update έχει κάποιο κουμπί για κάθε χρήστη;
    Το userlevel θα πηγαίνει πάντα από το 1 στο 2 ή το αυξάνεις γενικά κατά 1, δηλαδή πάει και από το 2 στο 3;
    Τη function στην php που θα κάνει το update την έχεις;

    Αν σου είναι εύκολο, βάλε και το html που έχεις φτιάξει.
    Εγώ με php καλώ μερικά στοιχεία ενός table από την βάση mysql, και θα ήθελα να προσθέσω και μία ακόμη στήλη σε αυτόν που θα περιέχει ένα κουμπί update, ώστε όταν το πατάει ο χρήστης, το κουμπί update θα μετατρέπεται στην λέξη updated και η μεταβλητή user level θα πηγαίνει πάντα από το 1 στο 2. Στην συνέχεια θα συνδέεται με το αρχείο update.php όπου με το userlevel και το username θα κάνει το update και στην βάση.

    Δές τον πίνακα σε mysql
    Κώδικας:
    $result = mysql_query("SELECT * FROM {$table} where userlevel=1");
    if (!$result) {
        die("Query to show fields from table failed");
    }
    $num_rows = mysql_numrows($result);
       if(!$result || ($num_rows < 0)){
          echo "Error displaying info";
          return;
       }
       if($num_rows == 0){
          echo "Database table empty";
          return;
       }
    $fields_num = mysql_num_fields($result);
    
    echo "<table id="myTable" align=\"left\" border=\"1\" cellspacing=\"0\" cellpadding=\"3\">\n";
       echo "<tr><td><b>Username</b></td><td><b>Level</b></td><td><b>Last Active</b></td><td>activate</td></tr>\n";
       for($i=0; $i<$num_rows; $i++){
          $uname  = mysql_result($result,$i,"username");
    
    $ulevel = mysql_result($result,$i,"userlevel");
          
          $time   = mysql_result($result,$i,"timestamp");
    
          echo "<tr><td>$uname</td><td>$ulevel</td><td>$email</td><td>$time</td>  <td><input type="button" onclick="changeContent()" value="Change content"></td></tr>\n";
       }
      
       echo "</table><br>\n";
    Τελευταία επεξεργασία από το μέλος kostasmpl : 22-11-12 στις 12:29.

  4. #4
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Δεν έχω ιδιαίτερη εμπειρία ούτε από javascript ούτε από PHP.
    Αυτό που θέλεις να κάνεις, είμαι σίγουρος ότι μπορεί να γίνει με πολλούς τρόπους.
    Το πιο πιθανό είναι ότι ο τρόπος που σου δείχνω να μην είναι ο καλύτερος, αλλά αφού δεν βλέπω άλλες απαντήσεις...

    Υποθέτω ότι το username είναι μοναδικό στον πινακά σου.

    Αυτό που μπορείς να κάνεις, είναι όταν καλείς την changeContent(), να της περνάς σαν παράμετρο και το username, οπότε εκεί που λες onclick="changeContent()" το αλλάζεις σε onclick=\"changeContent('$uname')\"

    Στη συνέχεια, βάζεις και ένα id στο πεδίο με το level ώστε να μπορείς να το βρεις εύκολα από την function και να το κάνεις update. Αλλάζει λοιπόν το <td>$ulevel</td> σε <td id=\"${uname}-level\">$ulevel</td>"

    Τώρα στο head του html σου, ορίζεις την changeContent:

    Κώδικας:
    <script>
    
       function changeContent(uname) {
    
          // βρίσκεις το κελί που έχει το level του χρήστη που θέλεις να αλλάξεις
          var levelCell = document.getElementById(uname+"-level");
          // αλλάζεις το περιεχόμενο του κελιού σε 2
          levelCell.innerHTML = "2"; 
        
          // φτιάχνεις ένα AJAX request το οποίο θα στείλεις σε ένα άλλο php, το οποίο θα κάνει update τη βάση. στο request θα στείλεις ως παράμετρο το username
          ajaxRequest=new XMLHttpRequest;
          ajaxRequest.open("POST","updateuser.php",true); // υποθέτω ότι το όνομα του καινούργιου php είναι updateuser.php
          ajaxRequest.send("updateuname="+uname); // και αυτή είναι η παράμετρος που στέλνεις στο php
    
       }
    </script>
    Φτιάχνεις μετά το userupdate.php

    Κώδικας:
    <?php
    
    if (!empty($_POST["updateuname"]) {
    
          // εδώ θα βάλεις τον κώδικα που θα κάνει update τη βάση.
          // το username το παίρνεις από τη $_POST["updateuname"]
    }
    
    ?>
    Ρίξε και μια ματία στο w3schools αν δεν το έχεις ήδη δει.
    Επίσης αν παίζεις με firefox, βάλε οπωσδήποτε το firebug addon. Θα σε βοηθήσει πολύ να κάνεις debug.

    Καλή τύχη.

  5. #5
    Εγγραφή
    07-04-2011
    Ηλικία
    38
    Μηνύματα
    49
    Downloads
    0
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από axxis Εμφάνιση μηνυμάτων
    Ρίξε και μια ματία στο w3schools αν δεν το έχεις ήδη δει.
    Επίσης αν παίζεις με firefox, βάλε οπωσδήποτε το firebug addon. Θα σε βοηθήσει πολύ να κάνεις debug.

    Καλή τύχη.
    Ευχαριστώ για την απάντηση αλλά μου χτυπάει σφάλμα στην γραμμή
    Κώδικας:
    echo "<tr><td>$uname</td><td id=\"${uname}-level\">$ulevel</td><td>$email</td><td>$time</td><td><input type="button" onclick=\"changeContent('$uname')\" value="Change content"></td></tr>\n";
    Μάλλον κάνω λάθος με την σύνταξη του
    Κώδικας:
    <td><input type="button" onclick=\"changeContent('$uname')\" value="Change content"></td>
    ή ίσως φταίει ότι ανοίγω την φόρμα πριν από το php script…

  6. #6
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    στον php κώδικα, όταν φτιάχνεις ένα string με διπλά εισαγωγικά (") και μέσα στο string επίσης χρησιμοποιείς διπλά εισαγωγικά, αυτά που έχεις μέσα στο string πρέπει να τα κάνεις escape με \
    πχ. στο echo που μου δείχνεις, κάπου λέει value="Change content"
    αυτό πρέπει να γίνει value=\"Change content\"

    δες αν έχεις και άλλα παρόμοια

  7. #7
    Εγγραφή
    28-04-2011
    Ηλικία
    49
    Μηνύματα
    683
    Downloads
    0
    Uploads
    0
    Νομίζω ότι escape χρειάζεται μόνο στα μονά εισαγωγικά.

  8. #8
    Εγγραφή
    31-12-2007
    Περιοχή
    Αθήνα
    Ηλικία
    51
    Μηνύματα
    324
    Downloads
    1
    Uploads
    0
    ISP
    HOL
    DSLAM
    HOL - ΜΑΡΟΥΣΙ
    Εξαρτάται πως έχεις ορίσει το string.
    Στην PHP μπορείς να ορίσεις ένα string είτε μέσα σε μονά εισαγωγικά είτε μέσα σε διπλά.
    Αν το έχεις ορίσει μέ διπλά εισαγωγικά, τότε ότι διπλά εισαγωγικά έχεις μέσα στο string, πρέπει να τα κάνεις escape ενώ ότι μονά έχεις δεν τα κάνεις escape.
    Αν έχεις ορίσει το string με μονά εισαγωγικά, ισχύει το αντίθετο.

    πχ. το string aaa 'bbb' "ccc" ddd μπορείς να το ορίσεις και με τους δύο παρακάτω τρόπους:
    Κώδικας:
    $a = "aaa 'bbb' \"ccc\" ddd";
    $b = 'aaa \'bbb\' "ccc" ddd';

Παρόμοια Θέματα

  1. c++ Char,function
    Από Atilas στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 3
    Τελευταίο Μήνυμα: 11-06-12, 16:13
  2. A call to an OS function failed
    Από trinv στο φόρουμ Windows
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 22-02-10, 01:37
  3. Συνάρτηση (function) σε MATLAB
    Από Charis.a στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 24-06-09, 11:23
  4. Function keys
    Από johnyb98 στο φόρουμ Windows
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 03-01-07, 19:19

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας