2014-02-17 34 views
2

这可能是一个愚蠢的问题,但我是新来的(这是一个家庭作业^^),我找不到解决方案:) 我有一个带有html格式的.php文件加上一些php代码来执行一个查询并在表单中插入我的数据库中的值。它可以工作,但每次页面加载时,php代码都会被执行,并且在DB中插入一个“空白”行,因为显然表单尚未填充。这是代码PHP页面与HTML表单内部执行PHP代码之前形式完成

<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="generator" content="AlterVista - Editor HTML"/> 
    <title></title> 
</head> 
<body> 

<form action="myPage.php" method="post"> 
ID: <input type="text" name="id" /> <br /> 

<input type="submit" name="Submit" value="Go" /> <br /> 
</form> 

<?php 
$user = "DB"; 
$password = ""; 
$host = ""; 
$database = "my_DB"; 
$connessione = mysql_connect($host, $user, $password); 

@mysql_select_db($database, $connessione) or die("Unable to select database"); 

$id = $_REQUEST['id']; 
$query = "INSERT INTO myTable (ID) VALUES ('".$id."')"; 
mysql_close(); 
?> 

</body> 
</html> 

有没有一种方法来执行PHP代码只有执行窗体上的“Go”按钮?

+0

:PHP工作_before_页面之中呈现 –

+0

是啊我假设xD,但有一种方法来执行一段PHP代码只是“事后”发生? (如表单完成) – r4id4

+0

检查是否设置了$ _POST ['Submit'],例如 –

回答

0

尝试:

if(isset($_POST['Submit'])) { 
    $user = "DB"; 
    $password = ""; 
    $host = ""; 
    $database = "my_DB"; 
    $connessione = mysql_connect($host, $user, $password); 

    @mysql_select_db($database, $connessione) or die("Unable to select database"); 

    $id = $_REQUEST['id']; 
    $query = "INSERT INTO myTable (ID) VALUES ('".$id."')"; 
    mysql_query($query, $connessione); 
    mysql_close(); 
} 
+0

尝试过,但从未执行的代码,即使提交按钮被按下!我应该改变其他代码? – r4id4

+0

编辑:现在它工作我写了“提交”,而不是“提交” – r4id4

0

PHP将在页面呈现前工作。你需要设置一个条件来停止你不想运行的PHP,直到你提交表单。

if(isset($_POST['myform'])) { 
    // process the form 
}else{ 
    // html for form goes here 
} 

希望有帮助。

0

假设的形式指向脚本本身,还有许​​多选项:)其中包括:

如果形式发布第一个例子只检查。如果接收到正常(GET)的请求,它会做什么,因为如果一个名为“提交”一个变量已经公布它不会落入你如果从句

// your form here 
if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // your php code 
} 

而这个例子检查,如果是这样,如果它的值为'Go'。这是一个稍微更严格的检查,但在当前的例子的行为是完全一样的(所以你几乎可以选择哪一个你最喜欢的;)这正是是应该发生的)

// your form here 
if(array_key_exists('Submit', $_POST) && $_POST['Submit'] == 'Go') { 
    // your php code 
} 
+0

我已经尝试了两个。第一个仍然执行,第二个执行,第二个永远不会执行;(我在<?php if(.. and closed here)>之后粘贴它 – r4id4