最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Write to file upon button press - Stack Overflow

programmeradmin0浏览0评论

Trying to write to a txt file upon button click. Not sure how to do it and my code isnt working. Im starting to think i might need AJAX? If so, can someone give me a quick pointer in the right direction? Please and thankyou in advance!

Here's my code:

<?php
 //write to file on button event

function buttonWrite()
{
$filename = 'button.txt';
@ $fp = fopen("messages/".$filename, 'wb');
if (!$fp)
{
    echo '<p><strong>Cannot generate message file</strong></p></body></html>';
    exit;
} 

$outputstring  = 'Hello, i have been generated by the button';

fwrite($fp, $outputstring);
}

?>

<html>

<head>
<title>Button Writer</title>
</head>

<body>
<button type="button" onclick="buttonWrite()">Write to File</button>
</body>

</html>

UPDATE! None of these answers actually work at all.. Not sure if its the server im hosting on or what, but yeah the just dont work.. any ideas guys ?

Trying to write to a txt file upon button click. Not sure how to do it and my code isnt working. Im starting to think i might need AJAX? If so, can someone give me a quick pointer in the right direction? Please and thankyou in advance!

Here's my code:

<?php
 //write to file on button event

function buttonWrite()
{
$filename = 'button.txt';
@ $fp = fopen("messages/".$filename, 'wb');
if (!$fp)
{
    echo '<p><strong>Cannot generate message file</strong></p></body></html>';
    exit;
} 

$outputstring  = 'Hello, i have been generated by the button';

fwrite($fp, $outputstring);
}

?>

<html>

<head>
<title>Button Writer</title>
</head>

<body>
<button type="button" onclick="buttonWrite()">Write to File</button>
</body>

</html>

UPDATE! None of these answers actually work at all.. Not sure if its the server im hosting on or what, but yeah the just dont work.. any ideas guys ?

Share Improve this question edited Jan 6, 2014 at 12:22 amartin94 asked Jan 6, 2014 at 9:47 amartin94amartin94 5153 gold badges19 silver badges36 bronze badges 4
  • Ps. Im entirely new to AJAX.. so please dont make it too difficult – amartin94 Commented Jan 6, 2014 at 9:49
  • You cannot call a PHP-function from the HTML. You need to, as you said, make an AJAX call to the php-file, which will in turn excecute the code. – Eric Commented Jan 6, 2014 at 9:49
  • JavaScript is front-end script, so it can not access files on your server; so yes, you do need ajax call to php script, that will do the job for you. Here is a starter for you: tizag./ajaxTutorial – Peon Commented Jan 6, 2014 at 9:49
  • jQuery ajax has always been the easiest way to implement ajax functionality, you could refer this official jquery link ,api.jquery./jquery.ajax – dreamweiver Commented Jan 6, 2014 at 9:53
Add a ment  | 

3 Answers 3

Reset to default 2

Create a PHP file .Lets say "abc.php".It contains:

<?PHP
$filename = 'button.txt';
@ $fp = fopen("messages/".$filename, 'wb');
if (!$fp)
{
    echo '<p><strong>Cannot generate message file</strong></p></body></html>';
    exit;
} 
else
{
$outputstring  = 'Hello, i have been generated by the button';
fwrite($fp, $outputstring);
Echo "Message inserted";
}
?>

HTML file

<html>
<head>
<title>Button Writer</title>
<script type='text/javascript' src='//code.jquery./jquery-1.10.1.js'></script>
</head>

<body>
<button id="button1" type="button">Write to File</button>
</body>
<script type='text/javascript'>
$('#button1').click(function(){
 $.ajax({
 type: "POST",
 url: "abc.php",
 data: "",
 success: function(msg){
     alert(msg);
 },
 error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert("Some error occured");
 }
 });
});
</script>
</html>

You do it wrong - javascript and php can't be executed together in HTML. What you need to do is to create:

1) "onclick" button event, that execute AJAX request to your server. I'll use jQuery in my examples for the simplicity.

<button id="btn">SAVE FILE</button>

<script type="text/javascript">
  // bind click event to button
  $('#btn').click(function() {
    // send ajax request to save.php (using POST method)
    $.post('save.php', { text: "sample text", function(data) { 
      // output response to console
      console.log(data); 
    });
  });
</script>

2) create save.php file - it will be responsible for saving your data to the file

<?php 
  // saving sample text to file (it doesn't include validation!)
  file_put_contents('file.txt', $_POST['text']);

  die('file has been saved');
?>

Entire Code

Save.php

 <?php
         //write to file on button event

        function buttonWrite()
        {
        $filename = 'button.txt';
        $outputstring = "Hello, i have been generated by the button'\n";
        file_put_contents($filename, $outputstring, FILE_APPEND | LOCK_EX);
        }

        ?>

index.php or index.html

    <html>

        <head>

        </head>

        <body>
<form name="input" action="save.php">
<input type="submit" value="Write to File">
</form>

        </html>

This should work it will write the $outputstring to the button.txt using the file_put_contents function

发布评论

评论列表(0)

  1. 暂无评论