Input type="image" submit geen data
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)
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
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>';
}
?>
$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.
Zet dit eens bovenin je code:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
Gewijzigd op 18/09/2011 16:12:08 door - SanThe -
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
zet hier de output eens neer?
De output is niks.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
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;
}
?>
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;
}
?>
Output, als in HTML-code.
Om de twee formulieren te onderscheiden kan je gebruik maken van een hidden-input of van GET-vars (beide formulieren een andere action).
Daarom ben ik hier.
@Elwin: Dat weet ik, er hoeft ook maar 1 formulier verzonden te worden om te bewerken, toe te voegen etc.
Dat formulier dat geechoed word, dat is je HTML-output.
Toevoeging op 18/09/2011 17:55:00:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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>
<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>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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>
<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