1,105,417 Community Members

Add Asyncrhonous Update

Member Avatar
wackyal
Newbie Poster
14 posts since Nov 2012
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

On index.php, change the functionality of your update button's click event so that:

  1. when the user clicks on update button it "changes comment text to a textbox with the same value". This requires you to write a javascript to first hide your <div id="comment_1">the first comment</div> and then dynamically write <input type="text" name="comment" value="the first comment"></input> after the hidden div. We need to hide the <div> to have a way to restore the original content if the user cancels the process.

  2. another two buttons appear on the same row AFTER the newly converted textbox field. The first one says "save" and the second one says "cancel".

       <?php
       session_start();
       if (!isset($_SESSION['login']) || $_SESSION['login'] != 1) {
          header('Location: login.php');
          exit();
       }
       ?>
    
       <html>
       <head>
       <title>
       My Guestbook - Alek Hein
       </title>
       </head>
       <body>
       <h1>My Guestbook</h1>
       <h2>Recent Comments</h2>
       <h3>Welcome <?php echo $_SESSION['name']?>! <a href="http://students.cpcc.edu/~ahein001/web250/lab8/logout.php">Logout</a></h3>
     <script type="text/javascript">
     function update_me(obj) {
      var selected_form = obj.form;
      var id = selected_form.id.value;
      selected_form.action = 'updatecomment.php';
      selected_form.submit();
     }
    
     function delete_me(obj) {
      var selected_form = obj.form;
      var id = selected_form.id.value;
      selected_form.action = 'deletecomment.php';
      selected_form.submit();
     }
     </script>
     <?php
    
    require('dbconnect.inc.php');
        $entriesq = mysql_query("SELECT id, body, post_date, author_name FROM `Posts` LIMIT 0, 10 ") or die(mysql_error());  
    
            while($entriesr = mysql_fetch_array($entriesq)){
                $id = $entriesr["id"];
                $post_date = $entriesr["post_date"]; 
                $author_name = $entriesr["author_name"];
                $post_body = $entriesr["body"];
    
              ?>
              <form method="post" >
                <table>
                    <tr>
                        <td>
                            <input type="hidden" name="id" value=<?php echo $id; ?> />
                            <input type="button" name="Update" onClick="update_me(this)" value="Update" />
                            <input type="button" name="Delete" onClick="delete_me(this)" value="Delete" />
                            On <?php echo htmlspecialchars($post_date); ?> <?php echo htmlspecialchars($author_name); ?> said: <?php echo htmlspecialchars($post_body); ?>
                        </td>
                    </tr>
                </table>
            </form>
            <?php
              }
    
    require('dbdisconnect.inc.php');
    ?>
    
    <br>
    <a href="addcomment.php">Add a comment</a>
    </body>
    </html>
    
Member Avatar
diafol
Where are my eyes?
12,986 posts since Oct 2006
Reputation Points: 1,821 [?]
Q&As Helped to Solve: 1,849 [?]
Skill Endorsements: 92 [?]
Moderator
Featured
Sponsor
 
0
 

I don't see why you need to write the original message to a hidden div - this can be stored in a js variable. A reset or restore button can just take that value from the var and overwrite the textbox value. Or am I missing something?

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion