problem writing to json file

+1 Marie Goodwyn · November 17, 2014
I am new at this so pardon my ignorance. I am trying to make a form to send data to a json file that will be later used to create a quiz with edge Animate. the quiz works fine with a json file I wrote. Now I want the teachers to be able to add questions to the json file from the form so they do not have to touch the json file.
I get the data posted to the html but not to the file.
Testing here:

Here is the code
if (!isset($_POST['params'])) {
        $params = $_POST['params'];
        $jsonObject = json_encode($params);
        file_put_content('myData.json', $jsonObject, FILE_APPEND);
echo '$jsonObject';


<script type="text/javascript">
     $(document).ready(function() {
         var postData = {
                question: $("#question").val(),
                answer1: $("#answer1").val(),
answer2: $("#answer2").val(),
answer3: $("#answer3").val(),
answer4: $("#answer4").val(),
correctAnswer: $("#correctAnswer").val(),
                image: $("#image").val(),
                feedbackInfo: $("#feedbackInfo").val()

var params = JSON.stringify(postData);
            type: "POST",
data: params, 
url: "submit.php",                  
            success: function (data) {
$("#myData").html("this data was posted: " + params);
error: function(e){


<form id="newQuestion" name="newQuestion" method="post">
<label for="question">Question:</label>
    <input id="question" name="question" type="text" /><br>
<label for="answer1">Answer 1 or distractor: </label>
    <input id="answer1" name="answer1" type="text" /><br>
<label for="answer">Answer 2 or distractor: </label>
    <input id="answer2" name="answer2" type="text" /><br>
<label for="answer">Answer 3 or distractor: </label>
    <input id="answer3" name="answer3" type="text"  /><br>
<label for="question">Answer 4 or distractor: </label><br>  
    <input id="answer4" name="answer4" type="text"  /><br>
<label for="correctAnswer">Correct answer number: </label>
    <input id="correctAnswer" name="correctAnswer" type="text" /><br> 
<label for="image">Image name (Exampe: for house.png simply enter: house): </label>
    <input id="image" name="image" type="text"  /> <br>
<label for="feedbackInfo">Info about the question: </label>
    <input id="feedbackInfo" name="feedbackInfo" type="text" /> <br>        
<input type="button" value="submit" name="submit" id="submit"/>  

Post a Reply


- page 2
Oldest  Newest  Rating
0 Marie Goodwyn · November 18, 2014
Great. Thanks. So I got the loading of data to view it working fine. Could you point me to a way to make it editable in my table.
Here is what I think:
I should have input fields in the table and then a submit button to update the data.
Is this right?
0 Marie Goodwyn · November 18, 2014
One question at a time would be great.

BTW, I noticed that the feedbackInfo data is not loaded. I looked at all the code and I am not sure why. Could you check it out?
0 Marie Goodwyn · November 18, 2014
There is a problem with the feedbackInfo data that does not get changed in the json file. All the variables are correct so I am not sure why.

I think it would be nice if they could edit any question. Right now I have a table where all the questions are loaded.

Also, I probably need a way to prevent no data from being submitted.
0 Marie Goodwyn · November 19, 2014
I am so ashamed I missed that! I help people with this kind of things in the Animate forum and here I missed it even though I looked at the code several times. I did think there was a variable issue though but since php is new to me I  guess my brain did not recognize it was not a variable.
0 Marie Goodwyn · November 19, 2014
I created a form to load the data from json. Here is the whole project again.
0 Marie Goodwyn · November 19, 2014
Wow, this is not only functional, it is also a very nice UI! How can I thank you? You did such a great job and I am totally humbled that you took the time to do all this for me.
0 Marie Goodwyn · November 19, 2014
You have really gone the extra mile to help a total stranger and I will not forget it. 

I still have to finish the php tutorial here and I will probably go through it several times until I can make things work on my own. I guess it will take some time. I am mostly self-taught and learned JavaScript here with Bucky. I have recommended it several time on the Animate forum.  I will also carefully review your input above.

As you, it is my privilege to help others on the Edge Animate forum and it is rewarding in itself to see how happy the people we help are. I have received countless emails of "happy customers" and it is always nice to get them. 

When someone thanks me on the forum, I often end my post with: "Now, go help someone else!"  and some do!

So I hope some day I will be able to answer a php question! Who knows...
0 Marie Goodwyn · November 20, 2014
I am wondering about a few things:

  • is there a way I could give the users the way to save the json file so they have a copy to include in the quiz system? I know they could just type in the address and display it but I think it would be a security issue.

  • is there a way to delete all data in the file to start a new set of questions? 

  • is there a way to delete one question only?

  • is there a way to check if a question data is empty to delete it so there is no empty question in the quiz?

0 Marie Goodwyn · November 21, 2014
This is pretty cool! I really want to learn php very well so I can expand my expertise! I see the great potential for what I do with Animate.
Some remarks:

  • I really like the idea of verifying the file though I do no see if and how it does it.

  • deleting a question works perfect. :) You'll have to tell me how it refreshes.

  • deleting all question works perfect! :)

  • The download fails though I entered several questions.

  • Otherwise all looks really good and I need to try and understand it all.
0 Marie Goodwyn · November 21, 2014
I am not sure why it fails. I am on Windows 8.1. The save dialog box opens as you can see below but when I click save I get the failed- No file message.



Server-side, HTML embedded scripting language used to create dynamic Web pages.