hi
I am VERY new to this, so please be gentle.
I am trying to use PHP to generate an HTML form for editing an
uncomplicated XML document. I can parse the xml information
successfully. However, when it comes to building the form, where I have
a pair of double quotes (one escaped) to open the insertion of an array
variable for a form value there is also a newline character inserted in
the generated HTML form source code. Firefox and Safari ignore the
'breaks' in the code lines but it causes Explorer 5.2 (Mac) to fail to
display the values.
I have tried replacing the escaped double quote with a single quote - no
change, the HTML source still includes the extra newline. I've tried
removing and inserting spaces either side of the '.' without luck. I've
also checked the xml document in Textwrangler and it is 'clean' of
unwanted hidden characters.
There are two oddities about this. Firstly, the array[0] postion record
set form doesn't produce this 'broken' generated HTML, yet subsequent
records each show breaks in the HTML source in exactly the same place.
The other strangeness is that if I tab the original xml document for
clarity I get tabs inserted in the HTML along with the extra return ....
but again, only from record 2 (array[1]) onwards.
Here is part of the xml -
<?xml version="1.0"?>
<teachingstaff>
<person>
<name>name 1</name>
<status>headteacher</status>
<class>1</class>
<history>words here</history>
<picture>1.jpg</picture>
</person>
<person>
<name>name 2</name>
<status>teacher</status>
<class>2</class>
<history>words here</history>
<picture>2.jpg</picture>
</person>
<person>
<name>name 3</name>
and so on ... and here is some of the php to generate the HTML editing
form -
<?
loadteachingstaff();
echo "<div id=\"container\">";
echo "<div class=\"head\"><h2>Edit staff listing</h2></div><div>\n";
if($tstaffid < count($teachingstaff)) {
echo "<form action=\"tstaffsave.php\" method=\"POST\">";
echo "<input type=\"hidden\" name=\"tstaffid\" value=\"$tstaffid\">";
echo "<table>\n<tr><td class=\"labelr\">Name: </td><td><input
type=\"text\" name=\"newname\" size=\"50\"
value=\"".$teachingstaff[$tstaffid]['name']."\"></td></tr><br />\n";
echo "<tr><td class=\"labelr\">Role: </td><td><input type=\"text\"
name=\"newstatus\" size=\"50\"
value=\"".$teachingstaff[$tstaffid]['status']."\"></td></tr><br />\n";
echo "<tr><td class=\"labelr\">Class(es): </td><td><input type=\"text\"
name=\"newclass\" size=\"50\"
value=\"".$teachingstaff[$tstaffid]['class']."\"></td></tr><br />\n";
echo "<tr><td class=\"labelr\" valign=\"top\">Experience:
</td><td><textarea name=\"newhistory\" rows=\"5\" cols=\"50\"
align=\"left\">" . $teachingstaff[$tstaffid]['history'] .
"</textarea></td><br /></tr>\n";
and so on ...
The (**NEWLINE**) 'break' in the generated HTML source appears at the
following point in each of the echoed lines -
...
name=\"newstatus\" size=\"50\"
value=\""**NEWLINE**.$teachingstaff[$tstaffid]['status']."\"></td></tr><br
/>\n";
...
... but NOT if $tstaffid is 0 ...
Sorry to be so long-winded. I've checked the FAQ archives and can't find
anything which helps.
Mark
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php