Input type="image" submit geen data

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Augspurger

Richard Augspurger

18/09/2011 15:34:35
Quote Anchor link
Hey,

Ik ben bezig met een administratie paneel van mijn nieuwe website.
Daarbij heb ik een 'feature' geschreven die de navigatie beheerd.

Het toevoegen, wijzigen van naam en link, opslaan en verwijderen lukt.
Het enige dat ik nog wil doen is dat er 2 pijltjes zijn, 1 die naar boven wijst, 1 die naar beneden wijst, en als ik daarop klik, dat de gekozen navigatie link 1 plek naar boven of beneden schuift. (Dit hou ik bij met order in mijn database).

Hiervoor gebruik ik een input type="image" aangezien ze hetzelfde moeten werken als een input type="submit". Het enige is dat ze geen data meesturen. :/

Ik heb ze een name gegeven, ze heten moveup en movedown en daar laat ik ze op controleren.

Doe ik iets fout of is het gewoon de input die moeilijk doet? :/

Hier is de code die ik gebruik voor mijn navigatie beheer.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$query
= "SELECT * FROM navigation ORDER by `order` ASC";
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count == 0) {
    echo "<p>There are no navigation buttons.</p>";
}


else {
    $I = 0;
    echo '<span class="labels">Name</span><span class="labels">Url</span><span class="labels">Order</span>';
    while($nav = mysql_fetch_assoc($result)) {
        echo "
            <form method=\"post\">
            <p>
                <input type=\"hidden\" name=\"id\" value=\"$nav[id]\" />
                <input class=\"navname\" type=\"text\" name=\"name\" value=\"$nav[name]\" />
                <input class=\"navlink\" type=\"text\" name=\"link\" value=\"$nav[link]\" />
                <input class=\"navorder\" type=\"text\" name=\"order\" value=\"$nav[order]\" maxlength=\"2\"  />"
;
                if($nav['order'] == 1) {
                    echo '
                    <img src="images/dis-arrow-up.png" alt="-" />
                    <input type="image" name="movedown" src="images/arrow-down.png" alt="Move Down" />'
;
                }

                
                elseif($nav['order'] == $count) {
                    echo '
                    <input type="image" name="moveup" src="images/arrow-up.png" alt="Move Up" />
                    <img src="images/dis-arrow-down.png" alt="-" />
                    '
;
                }

                
                else {
                    echo '
                    <input type="image" name="moveup" src="images/arrow-up.png" alt="Move Down" />
                    <input type="image" name="movedown" src="images/arrow-down.png" alt="Move Down" />'
;
                }

                echo "
                <input type=\"submit\" name=\"save\" value=\"Save\" />
                <input type=\"submit\" name=\"delete\" value=\"Delete\" />
            </p>
            </form>
        "
;
        $I++;
    }

    echo '</form>';
    echo '<form method="post">';
    echo "<p>
            <input class=\"navname\" type=\"text\" name=\"name\" />
            <input class=\"navlink\" type=\"text\" name=\"link\" />
            <input type=\"submit\" name=\"add\" value=\"Add Menu Item\" />
        </p>"
;
    echo '</form>';
}

?>


Hopelijk hoor ik snel iets.

-Richard.
 
PHP hulp

PHP hulp

23/12/2024 02:16:14
 
- SanThe -

- SanThe -

18/09/2011 15:49:29
Quote Anchor link
Je maakt een X-aantal <form>'s aan in de while(), dan sluit je een niet geopend <form> en daarna maak je nog een <form> aan. Dat kan niet goed gaan lijkt mij.

Zet dit eens bovenin je code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest

?>
Gewijzigd op 18/09/2011 16:12:08 door - SanThe -
 
Richard Augspurger

Richard Augspurger

18/09/2011 16:49:57
Quote Anchor link
Het sluiten van de niet geopende form weg, en die code die je stuurde doet niks, of ik ben weer zo'n mongool die het weer eens niet snapt.

Maar hoe laat je de input image werken?

Natuurlijk heb ik ze een name gegeven en een if statement om de $_POST ervan op te halen.
Gewijzigd op 18/09/2011 16:50:28 door Richard Augspurger
 
Jacco Brandt

Jacco Brandt

18/09/2011 16:55:13
Quote Anchor link
zet hier de output eens neer?
 
Richard Augspurger

Richard Augspurger

18/09/2011 16:58:45
Quote Anchor link
Ehmm, daar kom ik juist voor.

De output is niks.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
elseif(isset($_POST['moveup'])) {
    $query = "SELECT * FROM navigation WHERE `order` = $_POST[order]";
    $result = mysql_query($query);
    echo $query;
        
    $query2 = "SELECT * FROM navigation WHERE `order` = " . $_POST['order'] - 1;
    $result2 = mysql_query($query2);
    echo $query2;
}

?>
 
Jacco Brandt

Jacco Brandt

18/09/2011 17:14:57
Quote Anchor link
Output, als in HTML-code.
 
Elwin - Fratsloos

Elwin - Fratsloos

18/09/2011 17:16:17
Quote Anchor link
Meerdere formulieren maakt niet uit, als je maar in de gaten hebt dat slechts 1 formulier tegelijk verzonden wordt.

Om de twee formulieren te onderscheiden kan je gebruik maken van een hidden-input of van GET-vars (beide formulieren een andere action).
 
Richard Augspurger

Richard Augspurger

18/09/2011 17:27:01
Quote Anchor link
@Jacco: Ik krijg geen HTML output...
Daarom ben ik hier.

@Elwin: Dat weet ik, er hoeft ook maar 1 formulier verzonden te worden om te bewerken, toe te voegen etc.
 
Jacco Brandt

Jacco Brandt

18/09/2011 17:38:02
Quote Anchor link
Dat formulier dat geechoed word, dat is je HTML-output.
 
Richard Augspurger

Richard Augspurger

18/09/2011 17:53:55
Quote Anchor link
Ooohhh.

Toevoeging op 18/09/2011 17:55:00:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<form method="post">
<p>
    <input type="hidden" name="id" value="8" />
    <input class="navname" type="text" name="name" value="About" />
    <input class="navlink" type="text" name="link" value="about.php" />
    <input class="navorder" type="text" name="order" value="2" maxlength="2"  />
    <input type="image" name="moveup" src="images/arrow-up.png" alt="Move Down" />
    <input type="image" name="movedown" src="images/arrow-down.png" alt="Move Down" />
    <input type="submit" name="save" value="Save" />
    <input type="submit" name="delete" value="Delete" />
</p>
</form>
 
Jacco Brandt

Jacco Brandt

18/09/2011 17:59:56
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<form method="post" id="form" method="pagina.php?action=save">
<p>
    <input type="hidden" name="id" value="8" />
    <input class="navname" type="text" name="name" value="About" />
    <input class="navlink" type="text" name="link" value="about.php" />
    <input class="navorder" type="text" name="order" value="2" maxlength="2"  />
    <input type="image" onclick="document.getElementById('form').setAttribute('method', 'pagina.php?action=up');" name="moveup" src="images/arrow-up.png" alt="Move Down" />
    <input type="image" onclick="document.getElementById('form').setAttribute('method', 'pagina.php?action=down');" name="movedown" src="images/arrow-down.png" alt="Move Down" />
    <input type="submit" name="save" value="Save" />
    <input type="submit" name="delete" value="Delete" />
</p>
</form>

Probeer dit eens, let op het verschil: image-input en form-tag
Gewijzigd op 18/09/2011 18:00:17 door Jacco Brandt
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.