Re: Re: unknown number of inputs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Michael A. Peters wrote:
> Phpster wrote:
>>
>>
>> On Apr 10, 2009, at 12:44, Al <news@xxxxxxxxxxxxx> wrote:
>>
>>>
>>> PJ wrote:
>>>> I have a script with $_POST and <form> to load data with text input.
>>>> Situation: enter name of author(s) for book. I have the script set
>>>> up to
>>>> enter first_name, last_name for Author1 and the same for Author 2.
>>>> Check if entry 1 exists then proceed accordingly
>>>> Check if entry 2 exists then proceed accordingly.
>>>> Now, If I have three or more authors to enter, is there a way to add a
>>>> radio button to add more rows for input or to skip further inputs,
>>>> if I
>>>> have to enter the inputs for each additional author?
>>>> I'm looking for a simple way to do this. Could or should Ajax be
>>>> involved in this somehow?
>>>
>>> Here's the way I do it, especially if typically the number of
>>> entries are small. e.g., 4 or so.
>>>
>>> Show the 4 and let the user Submit them.
>>>
>>> Then, if they used all 4, return the page with an additional 4. Show
>>> all 8.
>>>
>>> Then, if they've used all 8, repeat until they leave at least one
>>> unused. Process the page.
>>>
>>> Make the batch size a constant that you can easily change. And
>>> consider making the first rendering say 6 and subsequent additions
>>> 3, or whatever.
>>>
>>> If you want to get a little fancy. Make a simple log file for the
>>> total number of entries. After the application has been used for a
>>> while, you can check the log and adjust your batch size constant(s)
>>> accordingly.
>>>
>>> Al....
>>>
>>> -- 
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>
>> Why, why make trips to the server when you don't need to?
>
> I agree.
> Write a simple javascript that creates an input and adds it as a child
> to the node that contains your inputs.extension) and replace it with a
> virgin input.
>
> var someInput = document.createElement("input");
> someInput.setAttribute("type","file");
> someInput.setAttribute("name","voucher[]");
> someInput.setAttribute("style","width: 42em;");
> myDiv.appendChild(myImage);
>
> Put something like that in a function where myDiv is the parent div of
> your inputs.
>
> Then you can add as many extra inputs as you want client side by
> calling the function and there is no need to mess with ajax or any
> other server side tech.
>
Thanks, guys, got it. JS makes sense for what I was looking for.
As to speed, yes it takes probably more time to enter 100 inputs for my
app, but then it's only for administrators and it's only to add db data;
not for users.
Thanks.
PJ

-- 
unheralded genius: "A clean desk is the sign of a dull mind. "
-------------------------------------------------------------
Phil Jourdan --- pj@xxxxxxxxxxxxx
   http://www.ptahhotep.com
   http://www.chiccantine.com/andypantry.php


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux