form action

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

David M

David M

05/09/2012 08:24:57
Quote Anchor link
Hi,

Stel ik heb een formulier : zoek04.php dat er zo uit ziet:

echo "<form action='zoek05.php?' method='post'>";
echo "Zoeken op:<br>";
echo "Artikel Naam :<input type='text' name='naam'><br>";
echo "<input type='submit' name='submit' value='zoeken'>";
echo "</form>";

als ik in dit (simpele) formulier de knop zal aanklikken zal het resultaat worden weer gegeven in zoek05.php (action=zoek05.php). Ik wil nu als ik het text veld leeg laat en toch submit inklik NIET naar zoek05.php gaan..... weet iemand HOE?


Alvast bedankt.
 
PHP hulp

PHP hulp

18/12/2024 03:12:56
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/09/2012 08:38:22
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<form name="aForm" action="zoek05.php" onsubmit="checkInput(this.form); return false;"">
<script>
function checkForm(f) {
    if (f.elements['naam'].value != '') {
        f.submit();
}
 
David M

David M

05/09/2012 08:48:17
Quote Anchor link
Hi Ger, Dit is me nog niet helemaal duidelijk....
 
Eddy E

Eddy E

05/09/2012 09:53:56
Quote Anchor link
Maak er dit van:

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
<?php
// jouw formulier, nu zonder onnodige echo's; gebruik van " en <label>...
    echo '
<form action="zoek05.php" method="post" onsubmit="checkInput(this.form); return false;">
    <p>Zoeken op:</p>
        <label for="naam">Artikel naam</label><input type="text" name="naam"><br>
        <label for="submit" id="verzendknop">Verzenden</label><input type="submit" name="submit" value="zoeken">
</form>'
;
    
// het Javascript wat er voor zorgt dat het formulier niet wordt verzonden, tenzij de waarde van het zoekveld NIET leeg is.
echo '
<script>
function checkForm(f) {
    if (f.elements["naam"].value != "")
        {
      f.submit();
        }
</script>'
;
?>


Toevoeging op 05/09/2012 10:00:03:

Persoonlijk zou ik voor deze oplossing gaan, mocht je jQuery gebruiken:
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
<?php
// hier staat vast wat code? Zo niet, kan dit hele PHP-blok weg
?>

<!-- jouw formulier, nu zonder onnodige echo's; gebruik van " en <label>...-->
<form action="zoek05.php" method="post">
    <p>Zoeken op:</p>
        <label for="naam">Artikel naam</label><input type="text" name="naam"><br>
        <label for="submit">Verzenden</label><input type="submit" name="submit" value="zoeken">
</form>';
    
<!-- het Javascript wat er voor zorgt dat het formulier niet kan worden verzonden, als de waarde van het zoekveld leeg is.-->
$(document).ready(function(){
     $('input[type="submit"]').attr('disabled','disabled');
     $('input[type="text"]').change(function(){
            if($(this).val != ''){
               $('input[type="submit"]').removeAttr('disabled');
            }
     });
 });
<?php
// rest van code?
?>
Gewijzigd op 05/09/2012 10:00:38 door Eddy E
 
Kris Peeters

Kris Peeters

05/09/2012 10:05:01
Quote Anchor link
Kleine aanpassing van Ger zijn script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<script>
  function formcheck(form) {
    return (form.elements['naam'].value != '');  
    // geeft terug: true => de input is ingevuld.  True wordt teruggegeven aan onSubmit => submit wordt uitgevoerd
    // false => niets ingevuld; (onSubmit = false) houdt het submitten tegen
  }
</script>
<form action="zoek05.php?" method="post" onsubmit="return formcheck(this);">
  Zoeken op:<br>
  Artikel Naam :<input type="text" name="naam"><br>
  <input type="submit" name="submit" value="zoeken">
</form>


Ongetwijfeld werken alle oplossingen die je hier ziet.
 
David M

David M

05/09/2012 10:07:20
Quote Anchor link
Zo ziet zoek04.php eruit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
session_start();
  include ("../../controller/include/config.php");
  include ("../../controller/include/connect.php");
 
?>

<script type="text/javascript">
$(document).ready(function(){
$('input[type="submit"]').attr('disabled','disabled');
$('input[type="text"]').change(function(){
if($(this).val != ''){
$('input[type="submit"]').removeAttr('disabled');
}
});
});
</script>


<!-- jouw formulier, nu zonder onnodige echo's; gebruik van " en <label>...-->
<form action="zoek05.php" method="post">
<p>Zoeken op:</p>
<label for="naam">Artikel naam</label><input type="text" name="naam"><br>
<label for="submit">Verzenden</label><input type="submit" name="submit" value="zoeken">
</form>

<!-- het Javascript wat er voor zorgt dat het formulier niet kan worden verzonden, als de waarde van het zoekveld leeg is.-->


maar bij inklikken en leeg veld gaat het toch naar zoek05.php.....???
 
Kris Peeters

Kris Peeters

05/09/2012 10:10:42
Quote Anchor link
Ja, inderdaad. Bij dit soort dingen kan je beter controleren via het evenement 'onSubmit', en niet te veel focusen op de submit knop.
 
David M

David M

05/09/2012 10:10:52
Quote Anchor link
HI Kris, die van jou werkt! Maar ik ben bang dat ik die van Eddy en Ger niet goed uitvoer (maw probleem ligt bij mij ben ik van overtuigd)

Toevoeging op 05/09/2012 10:17:01:

Dit is het werkelijke zoek formulier (inclusief radio buttons....) hoe moet het er dan uit zien?

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
<?php

/*<div id="zoek_outer">
        <h1>Afhaaleten bestellen :</h1>
        <table class="choices">
        <form action="index.php" method="post">
        <tr >
        <td>
        <input type="radio" name="radio_01" value="afhalen"/>Afhalen
        <input type="radio" name="radio_01" value="bezorgen" />Bezorgen
        
        </td>
        </tr>
        <tr><td style="color:#d90000; font-size:12px;">{$melding}</td></tr>
        <tr>
        <td><input type="text" name="gegevens_rest" value="Postcode, adres of naam?" size="50"  class="clear-it"/></td>
        </tr>
        <tr>
        <td><input type="submit" class="button_search" value="Zoeken" name="zoeken" /></td>
        </tr>
        </form>
        </table>
</div>*/

?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/09/2012 10:19:23
Quote Anchor link
David, eerst voeg je een eventhandler toe aan het form (onsubmit):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form name="aForm" action="zoek05.php" onsubmit="return checkInput(this.form);">

Dan zet in de head van je document dit stukje javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<script>
function checkInput(f) {
    if (f.elements['naam'].value != '') {
        return true;
    }
    else {
    alert("A.u.b. uw naam invullen");    
    return false;
    }    
}
</script>

Dit zorgt ervoor dat het formulier niet verstuurd wordt, als de naam niet is ingevuld.
Overigens doe ik tegenwoordig ook met jQuery en AJAX.
Gewijzigd op 05/09/2012 10:20:04 door Ger van Steenderen
 
David M

David M

05/09/2012 10:21:32
Quote Anchor link
Was eigenlijk vergeten, maar stel nu je vult niets in, klikt op submit er moet dan niets geburen (dat werkt nu) maar er moet wel een melding komen zoiets van: "u heeft niets ingevuld"

alvast bedankt...
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/09/2012 10:33:11
Quote Anchor link
Zie mijn vorige reactie, en ook even de aanpassingen die ik daar gemaakt hebt doorvoeren.

Toevoeging op 05/09/2012 10:34:21:

PS. Als je jQuery gebruikt moet je natuurlijk wel jQuery.js toevoegen in je document ;-)
 
David M

David M

05/09/2012 10:45:14
Quote Anchor link
@Ger Jquery.....oeps daar zeg je wat :-)

Toevoeging op 05/09/2012 11:14:32:

Ger krijg die van jou niet aan de praat.....

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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function checkInput(f) {
    if (f.elements['naam'].value != '') {
        return true;
    }
    else {
    alert("A.u.b. uw naam invullen");    
    return false;
    }    
}
</script>
</head>

<body>

<?php
  include ("../../controller/include/config.php");
  include ("../../controller/include/connect.php");
  ?>


<form name="aForm" action="zoek05.php" method="post" onsubmit="checkInput(this.form); return false;"">
 Zoeken op:</br>
 Artikel Naam :<input type="text" name="naam"></br>
 <input type="submit" name="submit" value="zoeken">
</form>
    
</body>
</html>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/09/2012 11:26:05
Quote Anchor link
<form name="aForm" action="zoek05.php" onsubmit="return checkInput(this.form);">
 
David M

David M

05/09/2012 11:29:35
Quote Anchor link
Nee ook niet.....:-(

mis hierin ook method="post"

Toevoeging op 05/09/2012 11:41:32:

Eigenlijk zou ik van onderstaand formulier een eenvoudige code willen weten als text leeg is of radio buttons niet "aangevinkt" er een melding lomt dat er iets vergeten is....

hoop dat iemand me kan helpen..


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
<?php
session_start();
  include ("../../controller/include/config.php");
  include ("../../controller/include/connect.php");
 ?>

<script>
  function formcheck(form) {
    return (form.elements['naam'].value != '');  
    // geeft terug: true => de input is ingevuld.  True wordt teruggegeven aan onSubmit => submit wordt uitgevoerd
    // false => niets ingevuld; (onSubmit = false) houdt het submitten tegen
  }
</script>
<form action="zoek05.php?" method="post" onsubmit="return formcheck(this);">
  Zoeken op:<br>
  Artikel Naam :<input type="text" name="naam"><br>
  <input type="radio" name="radio_01" value="af"/>Af
  <input type="radio" name="radio_01" value="op" />Op
  
  <input type="submit" name="submit" value="zoeken">
</form>
 
Eddy E

Eddy E

05/09/2012 14:33:46
Quote Anchor link
David M op 05/09/2012 10:07:20:
Zo ziet zoek04.php eruit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Rommeltje van gemaakt....


Nee, want de knop is toch gedisabled....? Heb je wel je jQuery erin?
Zie http://jsfiddle.net/nKBHE/1/
Gewijzigd op 05/09/2012 14:37:22 door Eddy E
 
David M

David M

05/09/2012 17:24:23
Quote Anchor link
Hi Eddy, zou je het ook eens kunnen laten zien met radio buttons?
 
Eddy E

Eddy E

05/09/2012 17:28:56
Quote Anchor link
Zucht.
Waarom vraag je daar gelijk niet naar?
En wat let je om op jsFiddle zelf iets te proberen?
 
David M

David M

05/09/2012 17:37:29
Quote Anchor link
Hi Eddy => al het begin is moeilijk......

verder had ik het al gevraagd, op het later moment en toen werd de vraag onduidelijk en toen had ik opnieuw een topic aan gemaakt en toen werd ozzie boos en in de nieuwe topic staat eigenlijk precies mijn vraag... snappie
 
Eddy E

Eddy E

05/09/2012 19:11:05
Quote Anchor link
Ik snap het helemaal, behalve dat nieuwe topic. Die was inderdaad totaal niet nodig.

Maar goed: wat is de html-code van je radio-dingen?
Liefst gooi je het even op jsfiddle: hoe werkt dat?
1) Ga naar jsFiddle.com
2) Type in de diverse vakken de code (je kan ook de mijne 'forken')
3) Druk op RUN: werkt het zoals je wilt of kan je niet verder:
4) Druk op SAVE: de URL verandert... kopieer die en plak die hier.
 
David M

David M

05/09/2012 19:40:32
Quote Anchor link
Beste Eddy, nogmaals excuus voor het openen van de tweede topic, ik wist dit niet.

Ik ben nog eenmaal eigenwijs en geef je hierbij wat ik heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
  function formcheck(form) {
    return (form.elements['naam'].value != '');
    }
</script>

<form action="zoek05.php?" method="post" onsubmit="return formcheck(this);">
  Zoeken op:<br>
  Artikel Naam :<input type="text" name="naam"><br>
  <input type="radio" name="radio_01" value="af"/>Af
  <input type="radio" name="radio_01" value="op" />Op
  <input type="submit" name="submit" value="zoeken">
</form>



dit script en html staat in zoek04.php :

Als ik het text veld leeg laat het klik op zoeken gebeurt er niets. De radio buttons werken niet, ik bedoel of je ze nu gebruikt of niet het heeft geen functie. Dit zou ik net als bij het text veld ook willen; Dus leeg text veld of geen radio button mag er niets gebeuren wel zou ik dan een melding willen met dat er niets is ingevuld en/of geen radio button geselecteerd.

Hoop dat je me hiermee wilt helpen,

met vriendelijke groet, David
 



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.