1

PHP スクリプトを実行する送信ボタンがある場合、実際にそのページ、つまり process.php に移動せずに実行できますか? 私はこれを行うことができる JavaScript に慣れています。

(記録のために、私はAJAXなしで、他のページに一度リダイレクトせずに話している.いいえ、私はあまり期待していません.)

4

3 に答える 3

3

JavaScript でこれを実行できる理由は、JavaScript がクライアント側のブラウザー内で実行できるためです。一方、PHP は常にサーバー上で実行され、HTML をクライアントに返します。つまり、できません。

于 2013-02-17T00:46:41.617 に答える
1

AJAX を使用せずにそれを行う 1 つの方法は、次のようにフォームを非表示の iframe に送信することです。

<form action="blah.php" target="theReallyCoolIframe">...</form>
<iframe name="theReallyCoolIframe></iframe>

これは実際にはあまり適切な解決策ではないことに注意してください。AJAX は全体的にはるかに優れたソリューションであり、それほど難しいことではありません。jQueryとそのAJAX APIを調べる必要があります。

于 2013-02-17T00:52:43.687 に答える
0

問題に対してPHPのみのソリューションを使用したい場合は、これを試してください。

<?php


function submit_form(){
    $host = "localhost";
    $user = "user";
    $password = "password";
    $database = "database";   

    $firstname  = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING); 
    $lastname   = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING); 
    $email  = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL);


    // open connection to database
    $link = mysqli_connect($host, $user, $password, $database);
        IF (!$link){
            echo ("Unable to connect to database!");
        }
        ELSE {
           //INSERT VALUES INTO DATABASE
           $query = "INSERT INTO users (firstname,lastname,email) 
VALUES('".$firstname."', '".$lastname."', '".$email."'";
           return mysqli_query($link,$query);

        }
//close connection to database
        mysqli_close($link);

    }


$form = <<<EODuserform
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
    <head>
        <title>Form</title>
    </head>
        <form action="{$_SERVER['PHP_SELF']}" method="POST" name="userform">
            <label for='first'>First Name:</label></br>
            <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="firstname" /></br>
            <label for='first'>Last Name:</label></br>
            <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='2' VALUE="lastname" /></br>
            <label for='email'>E-mail:</label></br>
            <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="email" /></br>
            <input type="submit" class='button' name="submit" value="submit" tabindex='4' />
            </form>
    </body>
</html>
EODuserform;


IF(!IsSet($_POST['submit'])){ // Check if form is not send, if not display empty form.

    echo $form;
}

ELSE{
// in the case you want to send something to the database use 
submit_form();
echo ('Thanks for submitting your form');
}

?>

これは非常に基本的なスクリプトで、このページで同様のスクリプトを見つけることができます:フォームがデータベースに保存されない

于 2013-02-17T01:15:30.080 に答える