Skip to main content

How do I populate a form with values from API database when I click reply button and edit the data

When I click the 'reply' button, I want the user to be sent to a form, which

  • Would have the pre-populated details that the user first inputted when creating the form
  • Should be able to edit the details of the form

Kind of how on gmail, you can edit a form and it would be prefilled with some details.

Currently, the form is just empty and not showing the API data that I want. What can I update or do?

function addReply(id) {
  let actionDivReplyBtn = document.querySelector('.actions');
  let replyBtn = document.createElement("button");
  replyBtn.classList.add('reply');
  replyBtn.innerHTML = `<i class="fa fa-reply" aria-hidden="true"></i>`;
  actionDivReplyBtn.appendChild(replyBtn);

  replyBtn.addEventListener('click', () => {
    // Show the compost-form for user to edit and hide other views
    document.querySelector('#compose-view').style.display = 'block';
    document.querySelector('#emails-view').style.display = 'none';
    document.querySelector('#content-view').style.display = 'none';

    let recipients = document.getElementById('compose-sender').value;
    let subject = document.getElementById('compose-subject').value;
    let body = document.getElementById('compose-body').value;



    fetch(`/emails/${id}`)
      .then(response => response.json())
      .then(email => {
        recipients = email.sender;
        if (subject.startsWith("Re")) {
          subject = email.subject;
        } else {
          subject = "Re:" + email.subject;
        }
        body = `On ${email.timestamp} ${email.sender} wrote:` + email.body;

      })

    function updateDetail(e) {
      e.preventDefault();

      fetch(`/emails/${id}`, {
        method: 'PUT',
        body: JSON.stringify({
          "recipients": recipients,
          "subject": subject,
          "body": body
        })
      })
    }
  })
}
<div id="compose-view">
  <h3>New Email</h3>
  <form id="compose-form">
    <div class="form-group">
      From: <input disabled class="form-control" value="" id="compose-sender">
    </div>
    <div class="form-group">
      To: <input id="compose-recipients" class="form-control">
    </div>
    <div class="form-group">
      <input class="form-control" id="compose-subject" placeholder="Subject">
    </div>
    <textarea class="form-control" id="compose-body" placeholder="Body"></textarea>
    <input type="submit" class="btn btn-primary" id="submit-btn" />
  </form>
</div>
Via Active questions tagged javascript - Stack Overflow https://ift.tt/LWcxkjK

Comments

Popular posts from this blog

Prop `className` did not match in next js app

I have written a sample code ( Github Link here ). this is a simple next js app, but giving me error when I refresh the page. This seems to be the common problem and I tried the fix provided in the internet but does not seem to fix my issue. The error is Warning: Prop className did not match. Server: "MuiBox-root MuiBox-root-1" Client: "MuiBox-root MuiBox-root-2". Did changes for _document.js, modified _app.js as mentioned in official website and solutions in stackoverflow. but nothing seems to work. Could someone take a look and help me whats wrong with the code? Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console