[js & php] problemen met posten van data (?)

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ik weet niet zeker of dit in /13 of in /14 hoort, maar ik heb het idee dat het met het posten van het formulier al fout gaat, dus plaats ik hem toch maar in 13.

Ik voeg dynamisch enkele inputvelden via javascript (zie ook: hier) toe aan een pagina. De bedoeling is dat deze gewoon gepost worden en uitgelezen kunnen worden door een php scriptje, maar dat werkt niet goed. Hij leest wel de juiste lengte uit, maar de geposte velden hebben geen inhoud :?

de complete pagina is:
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<body>
<?php
for ($i = 0; $i < count($trefwoord); $i++) {
    if ($trefwoord[$i] != "") {
        for ($o = 0; $o < count($dochters[$i]); $o++) {
            //echo count($dochters[$i]).' | i: '.$i.'  o: '.$o.'  | '.$dochters[$i][$o].'<br />';
            if ($dochters[$i][$o] != "") {
                $url = 'http://'.$dochters[$i][$o].'.pagina.nl/';
                echo '<a href="'.$url.'" target="_blank">'.$url.'</a>';
                $fd = fread(fopen($url, "r"), 1000000);
                $trefw = $trefwoord[$i];
                echo ' - gelukt, '.$i++.'e trefwoord';
                if (strpos($fd,"$trefw")) {
                    echo ' -> gevonden: '.$trefw.'<br />';
                } else {
                    echo ' -> niet gevonden: '.$trefw.'<br />';
                }
            }
        }
    }
}
?>
<script language="JavaScript" type="text/javascript">
function createNewDochter(theId) {
    hIndex = 0;
    for (var i = 0; i < document.forms['overzicht'].elements.length; i++) {
        thisName = document.forms['overzicht'].elements[i].name;
        if (thisName.indexOf(theId) >= 0) {
            daIndex = thisName.charAt(12);
            if (hIndex < daIndex) {
                hIndex = daIndex;
            }
        }

    }
    oInput = document.createElement('<input>');
    oInput.name = theId + '[' + ++hIndex +']';
    document.all[theId +'Div'].innerHTML += '<br />Dochter: ';
    document.all[theId +'Div'].appendChild(oInput);
}

function createNew() {
    
    hIndex = 0;
    for (var i = 0; i < document.forms['overzicht'].elements.length; i++) {
        thisName = document.forms['overzicht'].elements[i].name;
        if (thisName.indexOf('trefwoord[') >= 0) {
            daIndex = thisName.charAt(10);
            if (hIndex < daIndex) {
                hIndex = daIndex;
            }
        }

    }
    
    oDiv = document.createElement('<div id="dochters['+ ++hIndex +']Div>');
    oDiv.innerHTML += "<hr />Trefwoord: ";
    
    oInput1 = document.createElement('<input name="trefwoord['+hIndex+']">');
    oDiv.appendChild(oInput1);
    
    oDiv.innerHTML += "<br />Dochter: ";
    
    oInput2 = document.createElement('<input name="dochters['+hIndex+'][0]">');
    oDiv.appendChild(oInput2);
    
    document.all['inputDiv'].appendChild(oDiv);
    document.all['inputDiv'].innerHTML += '<a href="javascript: void(0);" onClick="createNewDochter(\'dochters[' + hIndex + ']\');">Nieuwe dochter</a><a href="javascript: createNew(); void(0);">Nieuwe trefwoord</a>';
}
</script>

<form name="overzicht" method="post" action="">

<div id="inputDiv">
    <div id="dochters[0]Div">
        Trefwoord: <input type="text" name="trefwoord[0]"><br />
        Dochter: <input type="text" name="dochters[0][0]">
    </div>
    <a href="javascript: createNewDochter('dochters[0]'); void(0);">Nieuwe dochter</a> - 
    <a href="javascript: void(0);" onClick="createNew();">Nieuw Trefwoord</a>

</div>

<input type="submit" name="blaat" value="submit">
</form>

<script language="JavaScript" type="text/javascript">
</script>

</body>

Online @ http://www.sovenewmedia.nl/test4.php

  • JSchut
  • Registratie: Februari 2002
  • Laatst online: 21:28

JSchut

.....

ff dit in kleur
PHP:
1
<?<body><?phpfor ($i = 0; $i < count($trefwoord); $i++) {      if ($trefwoord[$i] != "") {            for ($o = 0; $o < count($dochters[$i]); $o++) {                  //echo count($dochters[$i]).' | i: '.$i.'  o: '.$o.'  | '.$dochters[$i][$o].'<br />';                  if ($dochters[$i][$o] != "") {                        $url = 'http://'.$dochters[$i][$o].'.pagina.nl/';                        echo '<a href="'.$url.'" target="_blank">'.$url.'</a>';                        $fd = fread(fopen($url, "r"), 1000000);                        $trefw = $trefwoord[$i];                        echo ' - gelukt, '.$i++.'e trefwoord';                        if (strpos($fd,"$trefw")) {                              echo ' -> gevonden: '.$trefw.'<br />';                        } else {                              echo ' -> niet gevonden: '.$trefw.'<br />';                        }                  }            }      }}?>

PSN jschut_82 | Xbox: JSchut82


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Eigen topic schoppen :(

//isser dan echt niemand ?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Iemand :? of weet iemand misschien hoe ik erachter zou kunnen komen ?!

Verwijderd

<form name="overzicht" method="post" action="">

Ben ik nou scheel of post je helemaal geen form naar een PHP script?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Nee, scheel ben je niet :D maar hij post nu gewoon naar zichzelf..

Verwijderd

http://bla.pagina.nl/ - gelukt, 0e trefwoord -> niet gevonden: bla

De gegevens komen aan, dus het zal eerder een fout in het PHP script zijn dan?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Idd.. als je gewoon 1 trefwoord en 1 dochter invult werkt het prima.

Maar als ik bij het eerste trefwoord, twee dochters wil hebben gaat het fout.. vb:

invoer:
trefwoord |_Meppel_____|
dochter: |_0522_______|
dochter: |_0521_______|

uitvoer:
http://0522.pagina.nl/ - gelukt, 0e trefwoord -> gevonden: Meppel

het inputveld voor de 2e dochter(0521) is dynamisch aangemaakt via javascript. Deze wordt zoals je ziet aan het resultaat niet verzonden. Als ik na het posten dmv PHP de lengte van dochters[getal][] opvraag (dat is dus de array met de dochters uit het formulier, waarbij getal het bijbehorende trefwoord refereert (nederlandS:?)), geeft ie wel de juiste lengte, maar GEEN data.

Daarom denk ik dat het al bij het dynamisch aanmaken van het inputveld fout gaat. Ik had het idee, dat ik het inputveld misschien moest verbinden met het <form> element, maar dat lijkt ook niet te werken ..

Verwijderd

Doe es het volgende in test.php:

<?php print_r($HTTP_GET_VARS); ?> (PHP 4.1 en lager)
of
<?php print_r($_GET); ?> (PHP 4.1 en hoger)

en dan even je formpje naar test.php laten submitten natuurlijk.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Het formulier wordt verzonden via POST dus ik heb er even HTTP_POST_VARS van gemaakt..
zie
http://www.sovenewmedia.nl/test4.php

Verwijderd

Inderdaad moeten het de POST variabelen zijn :)

Maar ik kan je in ieder geval met zekerheid zeggen dat het geen client-side probleem is, want alle variabelen komen aan, en je ziet ook meteen hoe ze aankomen.

Dan moet je dus naar je PHP script gaan kijken :)

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Als je meerdere dochters en trefwoorden invult, zul je zien dat de data niet volledig aan komt
Pagina: 1