Toon posts:

JS: Form veranderen m.b.t userinput

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil meerdere input velden gebruiken, maar de user moet kunnen aangeven hoeveel, dus als de user via de selectbox 7 selecteerd moeten er 7 input velden komen?... als hij het veranderd naar 3 dan moeten er 3 komen..

:? hoe krijg je zo iets voor elkaar? :D

(dit wil ik in combinatie met PHP gebruiken)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:24

crisp

Devver

Pixelated

Ja en???? ooit van document.write gehoord? :?

Intentionally left blank


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 18:23

Pelle

🚴‍♂️

Moet er gesubmit worden om die zooi te genereren, of moet het realtime gebeuren?

Als je toch PHP gebruikt, dan maak je gewoon een <select> met de naam zoveelInputsMoetenErKomen.

In je PHP script doe je dit:
PHP:
1
2
3
4
5
<?
for ($i = 0; $i < $zoveelInputsMoetenErKomen; $i++) {
    print "<input type=\"text\" name=\"ditIsEenInput[]\" size=\"30\"><br>\n";
}
?>

De naam van de input is (ja dat zie je goed) een array, en het leuke is dat je die in PHP dus uit kunt lezen, waarbij elke waarde een input-waarde vertegenwoordigt:
PHP:
1
2
3
4
5
<?
foreach ($ditIsEenInput as $key => $val) {
    print $key . " = " . $val . "<br>\n"; 
}
?>

Overigens meer een /14 vraag, en een hoog RTFM gehalte. Maar goed, 't is weekend.

Verwijderd

En als het realtime moet, pleur je er een stuk of 10 in een layer en maakt der het gekozen aantal visible..

Niet erg efficient, maar ok ;)

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op zondag 16 december 2001 13:17 schreef Tizzwat het volgende:
En als het realtime moet, pleur je er een stuk of 10 in een layer en maakt der het gekozen aantal visible..

Niet erg efficient, maar ok ;)
of even een javascript functie schrijven:
code:
1
2
3
4
5
6
7
functie(aantal) {

   for (i=1; i<=aantal; i++) {
   document.write('<br><input type=text>');
   }

}

zoiets ff globaal

en dan je form:
code:
1
2
3
4
<form>
<input type=text maxlength=2 name=hoeveel>
<input type=submit value="Go For It" onclick="javascript:functie(document.forms[0].hoeveel.value);">
</form>

het is allemaal ff heel globaal en niet getest
maar zoiets zo toch kunnen werken... ;)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Topicstarter
Tnx ppl, ik ben al druk bezig met coden :Y)

Verwijderd

Topicstarter
Kijk nu heb ik dit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<script language="JavaScript">

function createForm(number) {
   data = "";    
   inter = "'";
   if (10 > number && number > -1) {
    for (i=1; i <= number; i++) {
       if (10 > i) {
        spaces = "  ";
       } else {
        spaces = "    ";
      }
       data = data + "URL " + i + " :" + spaces + 
"<input type='text' size=10 name=" + inter + "url" + i 
+ inter  + "'><br>";
    }
    if (document.layers) {
       document.layers.cust.document.write(data);
       document.layers.cust.document.close();
    } else {
       if (document.all) {
        cust.innerHTML = data;
       }
    }
   } else {
       // error text?
   }
}

</script>

</head>

<body onload="javascript:createForm(5);">

<form name="counter">
    <p align="center">Number of URLs to enter: <select
    name="number" size="1">
      <option value="2">2</option>
      <option selected value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
    </select> <input type="button" value="Update"
    onclick="createForm(counter.number.value);"> </p>
</form>

<p align="center"><br>
</p>

<form name="webform">
    <div align="center"><center><table border="0">
      <tr>
        <td valign="top">Name:</td>
        <td valign="top"><input type="text" size="20"
        name="name" onchange="msg(this.form)"></td>
      </tr>
      <tr>
        <td colspan="2"><span id="cust" style="position:relative;"></span></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="submit" value="Send"></td>
      </tr>
    </table>
    </center></div>
</form>

Hij veranderd de form correct, nu wou ik een array toevoegen waarin ik d.m.v php data kan laten zetten en die in de functie kunnen uitlezen en benutten voor de value die aan het textveld geknoopt kan worden (text bv).

Wie zou weten hoe ik dit moet doen, ik heb het geprobeerd om dit te doen met een $xxx = array("etc", "etc", etc etc etc); en ik wou dan array $xxx[i] de value uitlezen maar toen kreeg ik een error dat die subfunctie niet bestond ofzo :?..

Verwijderd

Ik weet het niet zeker maar volgens mij zijn PHP arrays en JS arrays niet zomaar uitwisselbaar. Om je PHP array te gebruiken in JS moet je waarschijnlijk zoiets doen:
PHP:
1
2
3
4
5
6
7
<?
print "<script language=\"Javascript\">" ;
for([loop door je array heen]) {
     print "Arraynaam = " . Arraynaam[i] . ";";
}
print "<\script>" ;
?>

Ofzoiets...ik ben absoluut geen PHP god :o
Maar de strekking lijkt me duidelijk.

Verwijderd

Topicstarter
Ik begrijp 1001% wat je bedoeld maar dat werkt ook niet :'( wie o wie weet het...

Verwijderd

Topicstarter
Nu zit ik met het volgende probleem..

Ik heb een script werkend en met behulp van deze javascript code maak ik dus die div form onderdelen aan.
PHP:
1
2
3
4
5
<?
// php code ;)
echo "data = data + \"URL \" + i + \" :\" + spaces + \"<input type='text' 
size=10 name=\\'url\" + i + \"\'><br>\";\r\n";
?>

oftewel
code:
1
2
3
4
// javascript code.
// i = counter oftewel het nummer :-0.o-:
data = data + "URL " + i + " :" + spaces + "<input type='text' size=10 
name='" + inter + "url" + i + inter  + "'><br>";

alleen is dit wat de output is url2?? etc... dat is niet wat ik wil, ik moet name=2 etc... hebben...
code:
1
2
3
4
5
6
7
8
9
      <td colspan="2">
      <SPAN id="cust" style="POSITION: relative">
      URL 1 : <input type="text" size="10" url1??><br>
      URL 2 : <input type="text" size="10" url2??><br>
      URL 3 : <input type="text" size="10" url3??><br>
      URL 4 : <input type="text" size="10" url4??><br>
      URL 5 : <input type="text" size="10" url5??><br>
      URL 6 : <input type="text" size="10" url6??><br>
      </td>

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 08-08 23:52

shlammod

dus.... enzo....

Hoi,

Ik zat ongeveer soortgelijk iets te zoeken voor iets wat ik aan het proggen ben. Nu zit ik alleen met t probleem dat jouw update niet werkt in Netscape.
Krijg dan te zien document.layers.cust has no properties.
Werkt de code bij jou wel in Netscape?


En om een antwoord te geven op jouw probleem:

data = data + "URL " + i + " :" + spaces + "<input type='text' size=10 name='" + inter + "url" + i + inter + "'><br>";

misschien moet je die + inter + "url" veranderen in + inter + 'url' omdat alles wat je tussen die " " hebt staan als 'HTML' wordt uitgepoept.
Hope that helps.

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


  • Speedpete
  • Registratie: December 2001
  • Laatst online: 05-09 11:10

Speedpete

was barman

Ik zat ongeveer soortgelijk iets te zoeken voor iets wat ik aan het proggen ben. Nu zit ik alleen met t probleem dat jouw update niet werkt in Netscape.
Krijg dan te zien document.layers.cust has no properties.
Werkt de code bij jou wel in Netscape?
Zeker van the javascript source..

Dat mijn ouwe, vertrouwde dynamic formpie ooit nog op Tweakers zou komen.. snik. :)

Ik heb hum dus gemaakt. Kan tegenwoordig veel beter maar daar gaat het hier niet om.

Netscape probleem ken ik, 4.7 weigert enorm... Op m'n site (zie profile) staat een versie die correct werkt met zovel IE als Netscape 6..

Het script is nooit gemaakt met PHP in gedachten... De fout die ik hierboven zag had te maken met de dubbele en enkele aanhalingstekens...

de variabele inter vervangt de enkele quotes, als je daar mee rekening houdt zou je al verder kunnen komen..

-----------

Zo zou ik het doen: zet het javascript-gedeelte in een apart bestand en require het met PHP... Voor dat je het required maak je een array aan...

Op m'n site staat ook een array-dynamisch formpie maar die add/removed 1 textfield per keer...

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 08-08 23:52

shlammod

dus.... enzo....

Maakt mij verder niet zoveel uit.
Waar ik mee bezig ben is voor mijzelf bedoeld. Maar zat er aan te denken om het voor meerdere mensen te maken, en dan is t toch wel fijn dat het in beide browsers werkt.

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


  • Speedpete
  • Registratie: December 2001
  • Laatst online: 05-09 11:10

Speedpete

was barman

Inderdaad...

Ik heb geen tijd om het werkend te krijgen in Netscape 4.*, helaas.

Maar je moest eens weten hoeveel meel ik krijg vanover de hele wereld met vragen over dit script. Daarvan is 90%:
"Can you get it working in Netscape 4.7?"

Verschrikkelijk veel mensen gebruiken die browser nog, hier op me stageplaats is het zelfs de standaardbrowser..

(ik maak nu ff snel gebruik van IE 4.0)

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 08-08 23:52

shlammod

dus.... enzo....

:D
Heb je enig idee of het überhaupt werkend te krijgen is in NS 4.*?? Anders ga ik er niet eens aan zitten om t te proberen.
Of je schrijft iets dat alleen werkt in NS 4.* en deze houd je voor de rest van de browsers.. browser-check eromheen.. done ;)

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Verwijderd

Topicstarter
Op donderdag 20 december 2001 10:40 schreef shlammod het volgende:
Hoi,

Ik zat ongeveer soortgelijk iets te zoeken voor iets wat ik aan het proggen ben. Nu zit ik alleen met t probleem dat jouw update niet werkt in Netscape.
Krijg dan te zien document.layers.cust has no properties.
Werkt de code bij jou wel in Netscape?


En om een antwoord te geven op jouw probleem:

data = data + "URL " + i + " :" + spaces + "<input type='text' size=10 name='" + inter + "url" + i + inter + "'><br>";

misschien moet je die + inter + "url" veranderen in + inter + 'url' omdat alles wat je tussen die " " hebt staan als 'HTML' wordt uitgepoept.
Hope that helps.
Dat klopt helemaal ik heb ook de 'tjes weg gehaald en het resultaat was mooi value='etcetc' maar nu zit ik nog steeds met het zelfde probleem waar dit alles zowat over begon :+

Ik wil values die de user submit in het 'variable gedeelte van mijn form' ook kunnen worden terug gezet wanneer de pagina hergeladen wordt... dit i.v.m controles, etc etc etc.

Ik wil dus in het javascriptje een array maken d.m.v php routine en die dus benutten etc. ;)

http://www.koekie.f2s.com/xpoll/addpoll.php

voorbeeld van wat het nu is (werkt nog niet verder maar laat form zien en mogelijkheden (submit werkt wel))

  • Speedpete
  • Registratie: December 2001
  • Laatst online: 05-09 11:10

Speedpete

was barman

onthoud: script weet het aantal boxes...
Als je het aantal boxes weet, kan je elke naam benaderen. Beter en netter is: Bij change() een functie aanroepen waaraan je het box-nummer en de waarde meegeeft, deze worden opgeslagen in de array.

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 08-08 23:52

shlammod

dus.... enzo....

Ik heb dus op de volgende pagina
http://klanten.bit.nl/hard-rob/test2.phtml het script voor mijzelf toegepast (is nog niet helemaal klaar, maar het werkt)
Bij de select 'medium' gebruik ik die.
Aan de hand van de ID uit de DB, kijk ik dus wat daar bij hoor (CD-single, 2 CD, 3 LP enz) als er een '2 ' staat moet hij van mij 2 invul formilieren geven onderaan de pagina. Elk forumilier is 1 CD.

Als je dat idee bedoelt kan ik je wel helpen.

Oh BTW, bij mij gebeurt t automatisch, je hoeft niet op invoeren of wat dan ook te klikken.


Greetz

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Verwijderd

Topicstarter
Op donderdag 20 december 2001 16:53 schreef Speedpete het volgende:
onthoud: script weet het aantal boxes...
Als je het aantal boxes weet, kan je elke naam benaderen. Beter en netter is: Bij change() een functie aanroepen waaraan je het box-nummer en de waarde meegeeft, deze worden opgeslagen in de array.
Sorry maar ik begrijp niet waar je op doeld... ik moet ook met dit script een bestand uitlezen waar de data wordt in opgelagen etc... dus moet ik een 'array' gebruiken in javascript lijkt mij :D toch :?

Verwijderd

Topicstarter
vragen m.b.t javascript

hoe maak ik een 'array?'
= dat zo testArray[getal] = 'text';
:?

zo jah dan weet ik de rest wel te vinden en fixen :)

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Op vrijdag 21 december 2001 09:08 schreef Xtentic het volgende:
vragen m.b.t javascript

hoe maak ik een 'array?'
= dat zo testArray[getal] = 'text';
:?

zo jah dan weet ik de rest wel te vinden en fixen :)
uit de losse pols:
code:
1
2
3
4
5
6
7
var testArray = new Array(5);

testArray[0] = 'tekst1';
testArray[1] = 'tekst2';
testArray[2] = 'tekst3';
testArray[3] = 'tekst4';
testArray[4] = 'tekst5';

Verwijderd

Topicstarter
Op vrijdag 21 december 2001 09:17 schreef rwoudsma het volgende:

[..]

uit de losse pols:
code:
1
2
3
4
5
6
7
var testArray = new Array(5);

testArray[0] = 'tekst1';
testArray[1] = 'tekst2';
testArray[2] = 'tekst3';
testArray[3] = 'tekst4';
testArray[4] = 'tekst5';
heb ik als
code:
1
2
3
4
5
6
7
<script language='javascript1.2'>
var varArray = new Array(3);
varArray[0]="1";
varArray[1]="2";
varArray[2]="";
varArray[3]="";
</script>

ik heb nu het volgende
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
    // stel $blaat is een array
    echo "<script language='javascript1.2'>\r\n";
    echo "var varArray = new Array(" . $poll[questions] . ");\r\n";

       for ($i = 0; $i < $poll[questions]+1; $i++) {
           echo "varArray[" . $i . "]=\"" . $poll[quest][$i] . "\";\r\n";
       }

    echo "</script>\r\n";
?>


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// zo lees ik de form uit (dit kan sneller toch?)

      if ($number > 1) { $poll[quest][0] = $pollQ1;}
      if ($number > 2) { $poll[quest][1] = $pollQ2;}
      if ($number > 3) { $poll[quest][2] = $pollQ3;}
      if ($number > 4) { $poll[quest][3] = $pollQ4;}
      if ($number > 5) { $poll[quest][4] = $pollQ5;}
      if ($number > 6) { $poll[quest][5] = $pollQ6;}
      if ($number > 7) { $poll[quest][6] = $pollQ7;}
      if ($number > 8) { $poll[quest][7] = $pollQ8;}
      if ($number > 9) { $poll[quest][8] = $pollQ9;}
      if ($number > 10) { $poll[quest][9] = $pollQ10;}
      if ($number > 11) { $poll[quest][10] = $pollQ11;}
      if ($number > 12) { $poll[quest][11] = $pollQ12;}
      if ($number > 13) { $poll[quest][12] = $pollQ13;}
      if ($number > 14) { $poll[quest][13] = $pollQ14;}
      if ($number > 15) { $poll[quest][14] = $pollQ15;}
      if ($number > 16) { $poll[quest][15] = $pollQ16;}
      if ($number > 17) { $poll[quest][16] = $pollQ17;}
      if ($number > 18) { $poll[quest][17] = $pollQ18;}
      if ($number > 19) { $poll[quest][18] = $pollQ19;}
      if ($number > 20) { $poll[quest][19] = $pollQ20;}
      if ($number > 21) { $poll[quest][20] = $pollQ21;}
      if ($number > 22) { $poll[quest][21] = $pollQ22;}
      if ($number > 23) { $poll[quest][22] = $pollQ23;}
      if ($number > 24) { $poll[quest][23] = $pollQ24;}
      if ($number > 25) { $poll[quest][24] = $pollQ25;}

en wederom is http://www.koekie.f2s.com/xpoll/addpoll.php gewijzigd met de volgende mogelijkheden..

slaat alle variable getallen op behalve de laatste :? why :?
verder werkt het nu helemaal op 1 fout na dus. :'(

Help o help :)

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Op vrijdag 21 december 2001 09:33 schreef Xtentic het volgende:

slaat alle variable getallen op behalve de laatste :? why :?
verder werkt het nu helemaal op 1 fout na dus. :'(

Help o help :)
dat komt doordat hier de fout zit :)
[..]

heb ik als
code:
1
2
3
4
5
6
7
<script language='javascript1.2'>
var varArray = new Array(3);
varArray[0]="1";
varArray[1]="2";
varArray[2]="";
varArray[3]="";
</script>
Je zegt eerst dat je array 3 groot is, maar daarna maak je hem 4 groot...

Verwijderd

Topicstarter
K!... dat klopt niet helemaal, de fout zat um hierin :)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
if ($number > 1) { $poll[quest][0] = $pollQ1;}
        if ($number > 1) { $poll[quest][1] = $pollQ2;}
        if ($number > 2) { $poll[quest][2] = $pollQ3;}
        if ($number > 3) { $poll[quest][3] = $pollQ4;}
        if ($number > 4) { $poll[quest][4] = $pollQ5;}
        if ($number > 5) { $poll[quest][5] = $pollQ6;}
        if ($number > 6) { $poll[quest][6] = $pollQ7;}
        if ($number > 7) { $poll[quest][7] = $pollQ8;}
        if ($number > 8) { $poll[quest][8] = $pollQ9;}
        if ($number > 9) { $poll[quest][9] = $pollQ10;}
        if ($number > 10) { $poll[quest][10] = $pollQ11;}
        if ($number > 11) { $poll[quest][11] = $pollQ12;}
        if ($number > 12) { $poll[quest][12] = $pollQ13;}
        if ($number > 13) { $poll[quest][13] = $pollQ14;}
        if ($number > 14) { $poll[quest][14] = $pollQ15;}
        if ($number > 15) { $poll[quest][15] = $pollQ16;}
        if ($number > 16) { $poll[quest][16] = $pollQ17;}
        if ($number > 17) { $poll[quest][17] = $pollQ18;}
        if ($number > 18) { $poll[quest][18] = $pollQ19;}
        if ($number > 19) { $poll[quest][19] = $pollQ20;}
        if ($number > 20) { $poll[quest][20] = $pollQ21;}
        if ($number > 21) { $poll[quest][21] = $pollQ22;}
        if ($number > 22) { $poll[quest][22] = $pollQ23;}
        if ($number > 23) { $poll[quest][23] = $pollQ24;}
        if ($number > 24) { $poll[quest][24] = $pollQ25;}
?>

maar 't werkt nu, alleen krijg ik steeds als ik 'meer' wil --> ' undefined' te zien in de textboxjes ;(... daar moet ik dus vanaf :)... hoe kan ik dat fixen?

Array opnieuw aanmaken :?

Verwijderd

Topicstarter
Trouwens een 'array' groter maken kan altijd :)

Verwijderd

Topicstarter
nog een vraagje, als ik meer dan 1 woord in het variable boxje typ dan neemt ie alleen maar het eerste woord over in mijn php progie :? why?. :D

laatste update met save/load/clear op http://www.koekie.f2s.com/xpoll/addpoll.php :)

  • Speedpete
  • Registratie: December 2001
  • Laatst online: 05-09 11:10

Speedpete

was barman

Je hebt toch een max. aantal boxen van 25? Maak je Array dan standaard zo groot... :P

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


Verwijderd

Topicstarter
Op vrijdag 21 december 2001 10:40 schreef Speedpete het volgende:
Je hebt toch een max. aantal boxen van 25? Maak je Array dan standaard zo groot... :P
dat probleem is al gefixt, alleen wil ik weten waarom ik maar 1 woord per input box kan gebruiken en niet meerdere :? :D

  • Speedpete
  • Registratie: December 2001
  • Laatst online: 05-09 11:10

Speedpete

was barman

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
saving doc....<script language='javascript1.2'>
var varArray = new Array(13);
varArray[0]="1";
varArray[1]="2";
varArray[2]="3";
varArray[3]="4";
varArray[4]="5";
varArray[5]="6";
varArray[6]="7 8 9 10";
varArray[7]="undefined";
varArray[8]="undefined";
varArray[9]="undefined";
varArray[10]="undefined";
varArray[11]="undefined";
varArray[12]="undefined";
</script>

Dat staat in je source, dus hij slaat het wel op. Zo 1-2-3 zie ik het niet dus:

-Maak een textfield aan.
-Schrijf daar de code naartoe die het script ook op het scherm zet.

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


Verwijderd

Topicstarter
tis een text field dat ik gebruik :)... en verder zou het volgens mij echt zo moeten werken :)

  • Speedpete
  • Registratie: December 2001
  • Laatst online: 05-09 11:10

Speedpete

was barman

Ik bedoel een textfield/area waarin je de gegenereerde code dumpt, desnoods halverwege.. kan een een beetje debug-achtig te werk gaan en zie je de fout misschien.

Ik zie hem zo niet namelijk

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


Verwijderd

Topicstarter
Ik heb um al gevonden het script is nu werkend en werkt lekker alleen tja moet nog veel dingen aanpassen etc..

voorbeeld http://www.koekie.f2s.com/xp/editpoll.php?pollid=0

dit is niet mijn normale url maar dat komt omdat ik deze ff speciaal heb aangemaakt zodat iedereen ff ken spieken en de boel niet kan verneuken :)...

het kan oude type polls (mijn oude polls) converteren naar de nieuwe style, etc ;) check it out.

Verwijderd

Topicstarter
iemand nog suggesties?
Pagina: 1