1

如果我有一个将执行 PHP 脚本的提交按钮,我可以在不实际进入该页面的情况下执行它,即:process.php?我已经习惯了 JavaScript 能够做到这一点。

(为了记录,我说的是没有 AJAX,没有在另一个页面上重定向一次,不,我不是很有希望。)

4

3 回答 3

3

您能够使用 JavaScript 执行此操作的原因是 JavaScript 可以在客户端的浏览器中执行。另一方面,PHP 总是在服务器上执行并将 HTML 返回给客户端。简而言之,不,你不能。

于 2013-02-17T00:46:41.617 回答
1

不使用 AJAX 的一种方法是将表单提交到不可见的 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 回答