FORM OnClick sending not working

Discussion in 'PHP' started by gigafare, Jul 28, 2007.

  1. #1
    I have a form not working when clicking send, nor giving me the neccessary warnings on not filling in fields.

    Javascript

    <script language="javascript" type="text/javascript">
    function totalCheck(){
    	var docArr = new Array();
    	var allrt = "";
    	docArr[0] = "naam";
    	docArr[1] = "bedrijf";
    	docArr[2] = "contact";
    	docArr[3] = "secror";
    	docArr[4] = "email";
    	for(i=0; i<docArr.length; i++){
    		if(document.forms[0].elements[docArr[i]].value == ""){
    			if(allrt == ""){
    				allrt += '"'+String(docArr[i])+'"';
    			}else if(i == docArr.length-1){
    				allrt += ' en "'+String(docArr[i])+'"';
    			}else{
    				allrt += ', "'+String(docArr[i])+'"';
    			}
    		}
    	}
    	if(allrt != ""){
    		alert("Gelieve de volgende velden in te vullen:\n"+allrt+"");
    		return false;
    	}else{
    		document.getElementById('form').submit();
    	}
    }
    </script> 
    PHP:
    Spam control + send script

    	<?php
    
    // Function to check for spam
    function checkforspam() {
       $problem = 'N';
       foreach ($_POST as $key => $value) {
         if (stristr($value,'Content-Type:') || stristr($value,'bcc:')) {
           $problem = 'Y';
         }
       }
       if ($problem == 'Y') {
         return 'Y';
       } else {
         return 'N';
       }
    }
    
            // Handle POST method.
            if ($_POST)
            {
    
    if (checkforspam() == 'N') {
    
    	if(!empty($_POST['naam']) && !empty($_POST['bedrijf']) && !empty($_POST['contact']) && !empty($_POST['sector']) && preg_match('/^([a-z0-9!#$%&*+-=?^_`{|}~])+(\.[a-z0-9!#$%&*+-=?^_`{|}~]+)*@([-a-z0-9]+\.)+([a-z]{2}|com|net|edu|org|gov|mil|int|biz|pro|info|arpa|aero|coop|name|museum)$/ix', $_POST['email'])):
    
    		$naam = $_POST['naam'];
    		$bedrijf = $_POST['bedrijf'];
    		$contact = $_POST['contact'];
    		$sector = $_POST['sector'];
    		$website = $_POST['website'];
    		$email = $_POST['email'];
    		$ontwerp = $_POST['ontwerp'];
    		$xhtml = $_POST['xhtml'];
    		$CMS = $_POST['CMS'];
    		$Copywriting = $_POST['Copywriting'];
    		$Hosting = $_POST['Hosting'];
    		$SEO = $_POST['SEO'];
    		$Mailing = $_POST['Mailing'];
    		$Opleiding = $_POST['Opleiding'];
    		$Onderhoud = $_POST['Onderhoud'];
    		$pakket = $_POST['pakket'];
    
    		// Compose simple text message:
    		$message = "
    $naam werkt voor $bedrijf ($sector) te contacteren via $contact of $email
    en beschikt al dan niet over een $website.
    
    De interesse gaat uit naar:
    
    Photoshop ontwerp: $ontwerp
    Valid XHTML & CSS Template: $xhtml
    Content Management System: $CMS
    Copywriting: $Copywriting
    Hosting: $Hosting
    Zoekmachineoptimalisatie: $SEO
    Online Mailings: $Mailing
    Opleiding: $Opleiding
    Onderhoud: $Onderhoud
    TOTAALPAKKET: $pakket
    ";
    
    		// Send message
    		mail("kimvanhuynegem@hotmail.com", "Offerte", 
    $message);
    
                // Thank the generous user
                echo "p>Alvast bedankt. Wij contacteren u zo snel mogelijk.</p> \n";
    	else:
    		// dit toont een error message indien de gebruiker een foutief email adres heeft ingevuld, of enkele velden heeft leeg gelaten
    		echo "<p>U vulde een verkeerd email adres in, of u liet enkele velden leeg. Gelieve deze in te vullen. (Klik op de Terug knop van uw browser)</p>";
    	endif;
    }
            }
            else
            {
    
            ?>
    PHP:
    Form
    <form action="<?= $PHP_SELF ?>" method="post" id="form" onsubmit="totalCheck()">
    <fieldset>
    <legend>Uw gegevens</legend>
    <p><label for="name">*Naam:</label> <input type="text" name="naam" /></p>
    <p><label for="e-mail">*Bedrijf:</label> <input type="text" name="bedrijf" /><br /></p>
    <p><label for="sector">*Sector:</label> <input type="text" name="sector" /><br /></p>
    <p><label for="contact">*Tel/GSM:</label> <input type="text" name="contact" /><br /></p>
    <p><label for="e-mail">*E-mail:</label> <input type="text" name="email" /><br /></p>
    <p><label for="website">Website:</label> <input type="text" name="website" /><br /></p>
    <p class="datum">JA, ik ga akkoord te worden gecontacteerd door Ascenli om de verdere details van de offerte te bespreken.</p>
    <p class="datum">Velden met een * zijn verplicht in te vullen.</p>
    </fieldset>
    
    			</div>
    			
    			<div class="deelrechts">
    				<fieldset>
    <legend>Ik wens meer informatie/tarieven over:</legend>
    <p><label for="ontwerp">Photoshop ontwerp</label> <input type="checkbox" name="ontwerp" /></p>
    <p><label for="xhtml">XHTML Template</label> <input type="checkbox" name="xhtml" /></p>
    <p><label for="cms">CMS</label> <input type="checkbox" name="CMS" /></p>
    <p><label for="Copywriting">Copywriting</label> <input type="checkbox" name="Copywriting" /></p>
    <p><label for="Hosting">Hosting</label> <input type="checkbox" name="Hosting" /></p>
    <p><label for="SEO">SEO</label> <input type="checkbox" name="SEO" /></p>
    <p><label for="Mailing">Mailing</label> <input type="checkbox" name="Mailing" /></p>
    <p><label for="Opleiding">Opleiding</label> <input type="checkbox" name="Opleiding" /></p>
    <p><label for="Onderhoud">Onderhoud</label> <input type="checkbox" name="Onderhoud" /></p>
    <p><label class="label2" for="pakket">Ik wens een <strong>voordelig totaalpakket</strong><br />voor een nieuwe website</label><br /><input type="checkbox" name="pakket" /></p>
    </fieldset>
    <br />
    <a href="#" onClick="totalCheck()" class="link">Verzenden</a>
    </form>
            <?php
    
            }
    
            ?>
    PHP:
    Live: http://www.kimwebsites.com/ascenli/diensten/offerte/

    Anyone see anything I'm not seeing?
     
    gigafare, Jul 28, 2007 IP
  2. krt

    krt Well-Known Member

    Messages:
    829
    Likes Received:
    38
    Best Answers:
    0
    Trophy Points:
    120
    #2
    Typo:
        docArr[3] = "secror";
    Code (markup):
    Should be:
        docArr[3] = "sector";
    Code (markup):
     
    krt, Jul 28, 2007 IP
  3. gigafare

    gigafare Peon

    Messages:
    15
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    Thanks, but there seems to be more to it.

    I get an error on this not being empty or no object:

    if(document.forms[0].elements[docArr].value == ""){
     
    gigafare, Jul 29, 2007 IP
  4. krt

    krt Well-Known Member

    Messages:
    829
    Likes Received:
    38
    Best Answers:
    0
    Trophy Points:
    120
    #4

    Yes, because it is looking for the element "secror" which is a "non object" because it doesn't exist, it will be fine when you change it to "sector"
     
    krt, Jul 29, 2007 IP