[EdLUG] Help (Again ...)

Mark Turner replicant.mark at gmail.com
Sat May 23 14:27:55 UTC 2020


Andrew, my advice is quite simple, stick to CSS and simple HTML,

then when you have something which looks OK, and works, think about
Javascript

You really dont need php for most things, so start at the beginning, and
work your way up.

To do php, set up a webserver on your local machine, and start simple, then
add little by little as you learn.

Mark

On Fri, 22 May 2020 at 19:48, Jeremy Nicoll <jn.ml.elx.813 at letterboxes.org>
wrote:

> On Fri, 22 May 2020, at 18:52, Andrew Ramage wrote:
>
> > I have my website up and (mostly) correct.  I just need to get the
> > Directory to function correctly.
> >
> > andrewnramage.co.uk
> >
> > Copying and altering code  from w3schools, I have this function. Why
> > will it not work?
>
> You're not showing us all the code.
>
> None of us can see the php file(s) because if we try to look at
>
> http://andrewnramage.co.uk\xyz.php
>
> what we'd see is the result of executing that php code, not its
> actual source.
>
> When you say something does not work, that's the world's most
> useless statement.
>
> We have no idea what (if anything) does execute both in your browser
> and on the server.
>
> You could use your browser's developer tools to watch your javascript
> code execute, and (I expect) somehow log what the php code does on
> the server (though I don't know how that's done, especially if the server
> in question is not yours).  But I'm sure google will help.
>
>
>
> > <script>
> > //  xhttp.onreadystatechange = function() {
> > //    if (this.readyState == 4 && this.status == 200) {
> >        myFunction(this);
> > //    }
>
> In that set of lines 3/4 of them are commented out.  I'm not
> sure if the myFunction() bit is also not functioning because of
> the commented-out bits.
>
> If it is not being run and is not meant to be run, why did you include it
> in the question?
>
> If it is being run, where is the definition of myFunction()  ?   We are
> not clairvoyant.
>
> WHAT do you think it is mean to do?
>
>
>
> >    };
> >    xhttp.open("GET", "directory.xml", true);
> >    xhttp.send();
> > }
>
> Do those lines execute?   I'm guessing they cause the
> directory.xml file to be fetched, but is that right?  Under what
> circumstances does it happen?  Before this page loads, or
> asynchronously?  If the latter how does any code that then
> uses it know it's been fetched?
>
>
> Skipping over the function dirmusic() definition for now
> you also have
>
> > <button  margin-bottom=400px onclick=directory.php>Refresh</button>
>
> I was under the impression that the onlick action of a button would be a
> call of a JS function.  But you seem to be referencing a php page on your
> server.
>
> If I'm right (that the action needs to be a JS function call) I can't
> imagine that
> your code will do anything at all.
>
> If it does somehow execute  directory.php   no-one here has a clue what is
> in that file.
>
>
>
> > <div id="dir">Directory goes here</div>
> > <script>
> >     musicdir();
> > </script>
>
> What is   musicdir()    meant to do?
>
> Where is the function defined?
>
>
> You'll note it is NOT the thing defined here:
>
> > function dirmusic() {
>
>
> I have to ask... do you have any experience programming anything?
>
> You're making loads of beginner-type mistakes, not the sort of
> thing I'd expect to see an experienced programmer do.
>
> Getting a mix of JS executed in a browser and PHP executed on a
> server to work, if you don't CLEARLY understand the relationship
> between them, and the limitations on what each can do, is going
> to be hard work.
>
> I think you're trying to be too clever.  In your position I would set
> up some much simpler pages - some eg just with JS on them, and
> learn how to use your browser's dev tools, especially its JS
> debugger ... so you can later watch whether your more complex
> JS is doing what you expect.
>
>
> I'd also learn how to debug php, with some simple examples on
> your server.   See eg:
>
>  https://blog.teamtreehouse.com/how-to-debug-in-php
>
> or the simpler options described at
>
>  https://www.php.net/manual/en/debugger.php
>
> where the idea of one is eg that when the php program needs to
> show the programmer what the value of something is, it generates
> some literal HTML containing the diagnostic message.  So the
> programmer sees that inside the generated web page that their
> browser fetches.
>
> Anothr example creates log file (which will of course be on the
> server) and writes logging info to that.  Whether you can do that
> in your case might depend on what ther webhosting company
> let you do (unless it's your own server, of course).
>
> Ignore the suggesions to use various sophisticated php debuggers;
> they're fine for professional programmers who're going to be doing
> this every day... but they'll take ages to learn how to use.  Stick to
> simple methods where you can understand how they work.
>
>
> I would not try to make the two sides (JS in a browser and php on a
> server) co-operate until I knew how to do adequate debugging of
> both parts..
>
>
> It looks to me as if the intention of the code in the function is to
> read the xml file  - which seems to contain a list of song elements
> inside a directory one... and is presumably generated elsewhere
> and instead make the thing that generates the XML data generate
> an html table in eg "mytable.htm"
>
> Then the current page could be a .shtml one rather than .html and
> you could embed the current copy of the most-recently generated
> table with eg
>
>  #include virtual="/path/to/mytable.htm"
>
> There are disadvantages to using shtml and server-side includes,
> mainly that unless you run a server on your own PC you can't test
> the result without uploading the shtml files to the wehost's server,
> because it's the server that sees the "shtml" extension on a file and
> preprocesses it to expand the embedded #include requests.
>
>  See: https://en.wikipedia.org/wiki/Server_Side_Includes
>
>
> Note: I have never used php, nor JS.  But I did program for a
> living.
>
> --
> Jeremy Nicoll - my opinions are my own.
>
> --
> EdLUG mailing list
> EdLUG at lists.edlug.org.uk
> https://lists.edlug.org.uk/mailman/listinfo/edlug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.edlug.org.uk/pipermail/edlug/attachments/20200523/732eb427/attachment.html>


More information about the EdLUG mailing list