Search code examples
phpjavascriptajaxformswysiwyg

Submit text and Wysiwyg form to both Database and flat file


I've created a form that is made up of 2 input fields and a wysiwyg text area (ckeditor). I have a function using ajax to gather the ckeditor data to be submitted. I have the form properly submitting to the database, but I also need it to write to a text file. How would I go about doing this?

Edit to include code:

using onclick to submit:

onclick=\"javascript:submitData()\"

ajax function:

function submitData(){
var params='';  
if(document.getElementById('title').value!='' && document.getElementById('date').value!='' && CKEDITOR.instances.article.getData()!=''){
    //build params
    params='&title='+document.getElementById('title').value;
    params+='&date='+document.getElementById('date').value;
    params+='&article='+escape(CKEDITOR.instances.article.getData());
    var httpRequest=new ajaxObject('form.php',processData);
    httpRequest.update('id=submitData'+params);

}

submit to database, then try to submit to flat file:

$saving = $_REQUEST['saving'];
          if ($saving == 1) { 
            $data = $formData['title'];
            $data .= $formData['date'];
            $data .= $formData['article'];

            $file = "/txt/data.txt"; 

            $fp = fopen($file, "a") or die("Couldn't open $file for writing!"); 
            fwrite($fp, $data) or die("Couldn't write values to file!"); 
            fclose($fp); 
            }

Solution

  • I suppose that, somewhere in your PHP script, there is something like

    mysql_query("insert into your_table ... ");
    

    that inserts to the database ?

    Well, close to that line, you have to write to your file.


    The simplest solution I can think about is to use file_put_contents :

    file_put_contents('path to your file', $content);
    

    If you just want to create a new file, or override an existing one ; and :

    file_put_contents('path to your file', $content, FILE_APPEND);
    

    If you want to add your text at the end of an existing file (and create the file if it doesn't exist).


    Of course, you can also use a combinaison of fopen, flock, fwrite, and fclose ; but it means a bit more work ^^