Skip to content Skip to sidebar Skip to footer

Saving HTML Form Data To A Doc File

I have created a HTML form and a Word document. Actually I want to update the specific fields in the Word document. Like the following, user will fill in this form

Solution 1:

Check out: https://github.com/PHPOffice/PHPWord

What you need to do is create a word template-file where you have placeholders for your values. For example, in Word the organization field should have ${organization} as its value (instead of "xxxxxx").

require_once '../PHPWord.php';

// TODO: Get values from form here.
$org = ...
$email = ...
$phone = ...

$PHPWord = new PHPWord();
$document = $PHPWord->loadTemplate('template.docx');

$document->setValue('organization', $org);
$document->setValue('phone', $phone);
$document->setValue('e-mail', $email);

$document->save('customer.docx');

Solution 2:

I saw the answer to a similar question here Generating word documents with PHP

Assuming you have obtained the values from the form (via $_POST or $_GET) and stored them in $company , $telephone, $email respectively, then you can do something like this:

<?php
  header("Content-type: application/vnd.ms-word");
  header("Content-Disposition: attachment;Filename=document_name.doc");    
  echo "<html>";
  echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
  echo "<body>";
  echo "<b>created by PHP!</b>";
  echo "Organization / Company: $company <br>";
  echo "Telephone: $telephone <br>";
  echo "E-Mail: $email <br>";
  echo "</body>";
  echo "</html>";
  exit;
?>

But you have to re-direct the user to the page containing the above code before you set anything in the HTML body, otherwise, the code wont work. Modifiying the header should be the first thing to do.


Post a Comment for "Saving HTML Form Data To A Doc File"