如果我有一個將執行PHP腳本的提交按鈕,我可以執行它,而無需實際訪問該頁面,即:process.php?我習慣於JavaScript能夠做到這一點。執行PHP而不被重定向到動作鏈接文件?
(對,我說的是沒有AJAX,沒有其他的網頁重定向一旦備案,不,我不是很樂觀。)
如果我有一個將執行PHP腳本的提交按鈕,我可以執行它,而無需實際訪問該頁面,即:process.php?我習慣於JavaScript能夠做到這一點。執行PHP而不被重定向到動作鏈接文件?
(對,我說的是沒有AJAX,沒有其他的網頁重定向一旦備案,不,我不是很樂觀。)
的原因,你可以用JavaScript來做到這一點是因爲JavaScript可以在客戶端的瀏覽器中執行。另一方面,PHP總是在服務器上執行並將HTML返回給客戶端。總之,不,你不能。
試試這個,如果你想使用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');
}
?>
這是你可以在此頁面上找到類似的腳本一個非常基本的腳本:Form not saving to database
所以你告訴我,這個工作沒有任何導航?我不知道PHP執行或甚至傳輸到客戶端系統?這是我的理解,PHP在服務器上執行,然後發送HTML到客戶端。 參考 http://w3schools.com/php/default.asp – 2013-02-17 01:19:30
「什麼是PHP PHP 代表PHP:Hypertext Preprocessor的 PHP是一種廣泛使用的開源腳本語言PHP 腳本的執行服務器 PHP是免費下載和使用「 http://w3schools.com/php/php_intro.asp – 2013-02-17 01:20:21
@AMR感謝您的意見。按下提交按鈕後,表單將在服務器上執行。然後執行下一個循環。然而,對於該頁面的訪問者,瀏覽器中的位置保持不變。 – 2013-02-17 01:30:09
您是否嘗試過的javascript:無效(0)。 http://stackoverflow.com/questions/1291942/what-does-javascriptvoid0-mean。順便說一句,你爲什麼要留在同一個網站。無論如何,你也可以嘗試使用post,然後在動作中使用相同的頁面,或者使用$ _SERVER ['PHP_SELF']以腳本保留在php頁面上。如果沒有提交展示表單,並提交時顯示在同一頁上你喜歡什麼。 – 2013-02-17 00:51:46
道格史密斯你問題解決了嗎? – 2013-02-20 16:38:43