1

基本的なフォームのコードを微調整する必要があります。私は PHP 開発者ではなく、グラフィック デザイナーであり、PHP の基本的な知識しかありません。私がする必要があるのは、チェックボックスがチェックされていない限り、このフォームの送信を禁止することです. 私はウェブ上でいくつかのコードを見つけました。それはトリックを行うべきだと思いますが、いくつかの変更が必要であり、コードのどの部分を微調整すればよいかわかりません。PHP を調べたところ、不要なコードがたくさんあることがわかりました。JavaScript もあることがわかりました。HTML のフォーム レイアウトを変更して、必要なものだけを残しました。

フォームは次のようになります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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>
</head>

<body>

<?php 
    session_start();
    if(isset($_POST['Submit'])) {
        $youremail = 'somemail@mail.com';
        $fromsubject = 'Request from form';
        $bedrijfsnaam = $_POST['bedrijfsnaam'];
        $naam = $_POST['naam'];
        $mail = $_POST['mail'];
        $adres = $_POST['adres']; 
        $plaatsnaam = $_POST['plaatsnaam']; 
        $postcode = $_POST['postcode']; 
        $branche = $_POST['branche']; 
        $telefoon = $_POST['telefoon']; 
        $message = $_POST['message']; 
    $to = $youremail; 
    $mailsubject = 'Bericht ontvangen van'.$fromsubject.' Actie Pagina';
    $body = $fromsubject.'

    Bedrijfsnaam:  '.$bedrijfsnaam.'
    Naam Contact Persoon:  '.$naam.'
    E-mail: '.$mail.'
    Adres: '.$adres.'
    Plaatsnaam: '.$plaatsnaam.'
    Postcode: '.$postcode.'
    Branche: '.$branche.'
    Telefoonnummer: '.$telefoon.'

    vraag of Wens: '.$message.'

    |---------End Message----------|'; 

        echo "thank you for your request we will contact you asap."; 
                            mail($to, $subject, $body);
    } 
    else
    { 
        echo "Error Please <a href='terms.php'>try again</a>"; 
    }

    /* if (isset($_POST['Submit'])) {
        $to = 'somemail@mail.com';
        $subject = 'Bericht ontvangen van'.$fromsubject.' Actie Pagina';
        $body = '';
        unset($_POST['Submit']);
        foreach($_POST as $key => $val) {
            $body .= ucfirst($key).": ".$val."\n";
        }
        if (mail($to, $subject, $body)) {
            echo "Mail sent to ".$to." successfully.";
        } else {
            echo "Mail could not be sent.";
        }
    }*/

?> 

</body>
</html>

HTML と Javascript は次のとおりです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>PHP form check box example</title>


<script type = "text/javascript">
//email form validation

function everif(str) {
    var at = "@"
    var punct = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var lpunct = str.indexOf(punct)

    if (str.indexOf(at) == -1)
    {
        alert("Valid email must be entered")
        return false
    }

    if (str.indexOf(at) == -1 || 
        str.indexOf(at) == 0  ||
        str.indexOf(at) == lstr) {
        alert("Valid email must be entered")
        return false
    }

    if (str.indexOf(punct) == -1 ||
        str.indexOf(punct) == 0  ||
        str.indexOf(punct) == lstr) {
        alert("Valid email must be entered")
        return false
    }

    if (str.indexOf(at,(lat+1)) != -1) {
        alert("Valid email must be entered")
        return false
    }

    if (str.substring(lat-1,lat) == punct ||
        str.substring(lat+1,lat+2) == punct) {
        alert("Valid email must be entered")
        return false
    }

    if (str.indexOf(punct,(lat+2)) == -1) {
        alert("Valid email must be entered")
        return false
    }

    if (str.indexOf(" ") != -1) {
        alert("Valid email must be entered")
        return false
    }
        return true         
}

function evalid() {
    var emailID = document.contact_form.mail

    if (everif(emailID.value) == false) {
        emailID.focus()
        return false
    }

    //empty field validation

var naam = document.contact_form.naam
    if ((naam.value == null) || (naam.value == "")) {
        alert("Fields marqued with * must be entered")
        naam.focus()
        return false
    }

var telefoon = document.contact_form.telefoon       
    if ((telefoon.value == null) || (telefoon.value == "")) {
        alert("Fields marqued with * must be entered")
        telefoon.focus()
        return false
    }

var branche = document.contact_form.branche
if ((branche.value == null) || (branche.value == "")) {
        alert("Fields marqued with * must be entered")
        branche.focus()
        return false
    }

    return true
}
</script>
<style type = "text/css">
    #content {
        width:100%;
        text-align:center;
        font-family:Arial, Helvetica, sans-serif;
        font-size:14px;      
}

    #button {
        width:100%;
    }       
</style>
</head>

<body>

<div id = "content">
   Some terms of trade goes here<br>
   Some terms of trade goes here<br>
   Some terms of trade goes here<br>
   Some terms of trade goes here<br>
   Some terms of trade goes here<br>
   Some terms of trade goes here<br>
   Some terms of trade goes here
</div>

<div id = "button">
    <form name = "contact_form" method = "post" 
      id = "contactform" action = "form2.php" onSubmit = "return evalid()">
    I accept the above terms of trade
        <input type = "checkbox" name = "emailmarketing"
          id = "emailmarketing" value = "emailmarketing" />
        <input type = "submit" name = "Submit" value = "Submit">
    </form>
</div>

</body>
</html>

助けてくれてありがとう!

4

4 に答える 4

2

チェックボックスがオンになっているかどうかを確認する必要があります。

変化する

<?php 
    session_start();
    if(isset($_POST['Submit'])) {
    ...

<?php

    if(!isset($_SESSION))session_start();

    if(isset($_POST['Submit']) && $_POST['emailmarketing'] == 'emailmarketing') {
    ...
于 2013-06-20T12:47:34.070 に答える
0

javascript 関数 evalid にもう 1 つの条件を追加する必要があります。

if document.getElementById('emailmarketing').value==false {

    alert("you must accept terms of trade");
    return false;

}

フォームの送信中に、チェックボックスがオンになっているかどうかがチェックされます。

于 2013-06-20T12:57:01.540 に答える