<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-AU link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Maggie,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;What you need is the ability to create a dynamic form &#8211; it can
grow or shrink on the run before submitting the form.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>This requires javascript or similar.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>As the form grows, the variable ( array ) &nbsp;capturing each line
of input grows. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>When this is sent in to the php page to process ,a loop steps
through and picks up each element and prints it until there are no more
elements.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Attached 2 files ( dynamic.php and process.php ) demonstrate
this. The javascript is a modification of one I found during a search.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Try it. Note , no sentinel required.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Enjoy<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Kevork Krozian<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Edulists Creator Administrator<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>www.edulists.com.au<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>tel: 0419 356 034<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:
"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;
font-family:"Tahoma","sans-serif"'> php-bounces@edulists.com.au
[mailto:php-bounces@edulists.com.au] <b>On Behalf Of </b>Margaret King Iaquinto<br>
<b>Sent:</b> Saturday, 30 October 2010 4:41 PM<br>
<b>To:</b> 'PHP programming Teachers' Mailing List'<br>
<b>Subject:</b> Re: [php] arrays and loops<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'>My code didn't show up -- for
the HTML, that is. Apologies<br>
<br>
So here it is , I hope.<br>
<br>
&quot;&lt;p&gt;&lt;input type = &quot;text&quot; name =
&quot;languages[]&quot;&nbsp; &gt;Add a language&lt;/p&gt;&quot;<br>
&quot;&lt;p&gt;&lt;input type = &quot;text&quot; name =
&quot;languages[]&quot;&nbsp; &gt; Add a language&lt;/p&gt;&quot;<br>
&quot;&lt;p&gt;&lt;input type = &quot;text&quot; name =
&quot;languages[]&quot;&nbsp; &gt; Add a language&lt;/p&gt;&quot;<br>
&quot;&lt;p&gt;&lt;input type = &quot;text&quot; name =
&quot;languages[]&quot;&nbsp; &gt; Add a language&lt;/p&gt;&quot;<br>
<br>
I used the name of the input box as languages[ ] -- to indicate an array.<br>
<br>
When sent to the server, the php used this line of code to store the contents
of the array:<br>
<br>
$languages = $_POST['languages'];<br>
<br>
In the case above, I have shown 4 data items to be stored in the area. This is
a fixed number. Sure, the user can enter fewer than the 4 displayed. No
problems.<br>
<br>
What I want to learn is: how to allow the user to choose his own number of data
items to enter. He may have 5 or 10, whatever. But that would mean my HTML form
is unusually (and foolishly) long. Even then, I may not be able to accommodate
the huge number of data items for this array.<br>
<br>
So, my user hits the form and it can instruct the user this way : &quot;Enter
the names of the programming languages you know. Type in a -1 when
finished.&quot; Or something to that effect.<br>
<br>
The user will then enter 5 or 10 languages. The -1 is a signal that the data
entry is finished. It doesn't need to be a -1 but something that triggers the
end of the data entry. Like &quot;Press hash to end the message.&quot;<br>
<br>
Thank you for the prompt reply!<br>
<br>
Maggie<br>
VK3CFI <br>
<br>
<b>On Sat Oct 30 13:03 , Kevork Krozian sent:</b><o:p></o:p></p>

<p class=MsoNormal>Hi Maggie,<br>
<br>
<br>
I need more information.<br>
I am a little thrown by the fact you have PHP code within the html part of the
form - languages[].<br>
You could call them lang1, lang2, lang3, lang4 and when received in the page at
the server to process, you can go to the end of your array and add each of the
lang1, lang2, lang3, lang4 to it as follows:<br>
<br>
$languages[] = $POST['lang1']; // add one more item to array $languages<br>
$languages[] = $POST['lang2']; // add one more item to array $languages<br>
$languages[] = $POST['lang3']; // add one more item to array $languages<br>
$languages[] = $POST['lang3']; // add one more item to array $languages<br>
<br>
However, if you go back to the form and submit again, the $languages[] array is
no longer &quot;alive&quot; unless saved to a file to read from. Do I make
sense ? You can keep it alive by keeping it as a session variable but it has to
be passed back and forth to be alive in that session. You need to save it
before the session ends otherwise it is gone. What is a session ? It is the
time a browser window is open forwards, backwards etc until closed where the
session ends. <br>
<br>
If I can get a grasp of what you wish to do it would be easier to see the best
way to go.<br>
What I observe here is you wish to collect individual elements of an array via
fields in a form restricted to 4 fields. This is kind of ok I guess but what is
the design aim , to collect input to fill an array 1? 2 ? 3 ? 4? how many at a
time ?<br>
Remember with PHP you have a client filling a form potentially in Lebanon and a
server receiving the form contents to process it in Armenia. Therefore the
application environment of VB is not a reasonable analogy because with VB you
are using the form and processing at the same time in the one loop. Does that
make sense ?<br>
It makes sense to collect data one &quot;row&quot; , &quot;record&quot; at a
time and add to an array. You keep doing this for as long as you want, but need
to save to a file to keep the data. Having a sentinel doesn't make sense as the
cessation of form filling is the end of your input process.<br>
I don't wish to sound judgmental but the client /server concept is the point I
am trying to explain. <br>
Fill form -&gt; send to server -&gt; process data. If you fill form again
repeat the previous loop having saved the data before leaving the processing .
No need for a sentinel. <br>
<br>
I hope I have made some sense here<br>
If not please tell me.<br>
<br>
Take Care<br>
Kevork<br>
<br>
-----Original Message-----<br>
From: <a
href="javascript:top.opencompose('php-bounces@edulists.com.au','','','')">php-bounces@edulists.com.au</a>
[<a href="javascript:top.opencompose('%3ca%20href=">php-bounces@edulists.com.au</a>','','','')&quot;&gt;<a
href="javascript:top.opencompose('php-bounces@edulists.com.au','','','')">php-bounces@edulists.com.au</a>]
On Behalf Of Margaret Iaquinto<br>
Sent: Saturday, 30 October 2010 3:41 PM<br>
To: <a href="javascript:top.opencompose('php@edulists.com.au','','','')">php@edulists.com.au</a><br>
Subject: [php] arrays and loops<br>
<br>
I can gather data into an array by using a form. I can spill the <br>
contents of that array by using a loop.<br>
<br>
In the code snippet below, the user enters the name of a programming <br>
language.<br>
<br>
snippet from the form:<br>
<br>
p&gt;[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]Add a
language<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;] Add a
language<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;] Add a
language<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p>[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;] Add a
language<o:p></o:p></p>

<p class=MsoNormal><br>
<br>
The php code snippet looks like this:<br>
<br>
echo &quot;Display the data - using a REPEAT UNTIL loop&quot;;<br>
echo &quot;<br>
&quot;;<br>
$position = 0;<br>
do {<br>
echo &quot;$languages[$position]&quot;;<br>
$position += 1;<br>
echo &quot;<br>
&quot;;<br>
}<br>
while ($position &lt; count($languages));<br>
<br>
And the code works.<br>
<br>
The form limits the number of languages to four, in the code above.<br>
<br>
Is there a way to use a loop or some kind of syntax to ask the user to <br>
keep entering data until a sentinel is entered?<br>
In VB, I can use an InputBox within a loop. When the user types in, say <br>
-1, this ends the loop and the array stops being filled.<br>
<br>
But how do I do that in PHP?<br>
<br>
Thanks<br>
<br>
Maggie<br>
_______________________________________________<br>
<a href="parse.pl?redirect=http%3A%2F%2Fwww.edulists.com.au" target="_blank"><span
style='color:red'>http://www.edulists.com.au</span></a> - FAQ, resources,
subscribe, unsubscribe<br>
PHP Mailing List kindly supported by<br>
<a href="parse.pl?redirect=http%3A%2F%2Fwww.vcaa.vic.edu.au" target="_blank"><span
style='color:red'>http://www.vcaa.vic.edu.au</span></a> - Victorian Curriculum
and Assessment Authority and<br>
<a href="parse.pl?redirect=http%3A%2F%2Fwww.vitta.org.au" target="_blank"><span
style='color:red'>http://www.vitta.org.au</span></a> - VITTA Victorian Information
Technology Teachers Association Inc<br>
<br>
_______________________________________________<br>
<a href="parse.pl?redirect=http%3A%2F%2Fwww.edulists.com.au" target="_blank"><span
style='color:red'>http://www.edulists.com.au</span></a> - FAQ, resources,
subscribe, unsubscribe<br>
PHP Mailing List kindly supported by<br>
<a href="parse.pl?redirect=http%3A%2F%2Fwww.vcaa.vic.edu.au" target="_blank"><span
style='color:red'>http://www.vcaa.vic.edu.au</span></a> - Victorian Curriculum
and Assessment Authority and<br>
<a href="parse.pl?redirect=http%3A%2F%2Fwww.vitta.org.au" target="_blank"><span
style='color:red'>http://www.vitta.org.au</span></a> - VITTA Victorian
Information Technology Teachers Association Inc<br>
)<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>