0

我设计了一个纯 html 网站,有一个查询表格。它有一些字段,如姓名,地址等。点击提交按钮,我希望这些数据进入数据库。我在XAMPP服务器上使用phpmyadmin创建了数据库和表。

我的代码如下(hello.php):

<script>
function insert_db()
{

     <?php
     $username = $_POST['name'];
     print ($username);
     mysql_connect("localhost","root","");
     mysql_select_db("addressbook");

     mysql_query("insert into colleague values ('$username')");

     ?>


       }
 </script>

    <form  method="post">
   <input type="name" name="name" /><br />
   <input type="submit" name="mysubmit" value="Submit"  onclick="insert_db()"/>

单击提交按钮后,会在数据库中输入两个条目。一个为空白,另一个为输入值。如何只调用一次函数?有没有其他出路..

4

2 回答 2

5

你不能,我再说一遍,不能以这种方式结合 JS 和 PHP。

右键单击该页面,选择查看源代码,您将清楚地看到原因。

PHP 在浏览器获取页面之前运行。

因此,当您加载表单时,您会得到一个空记录,然后在您提交它时得到一个已填充的记录,因为$username当时已定义。

于 2012-04-10T11:46:50.023 回答
4

你不能像这样混合 php 和 javascript。你看,PHP 总是在服务器端执行,不管它在文件中的什么位置(PHP 不知道 JavaScript)。因此,第一次加载页面时,它将插入一个空行(因为 $_POST['name'] 为空)。然后,如果您单击提交,它将什么也不做,因为 JavaScript 代码是空的,将表单提交到服务器并再次评估 PHP 代码,这一次达到了预期的效果。

这样做的正确方法是:

<?php
if (!empty($_POST['name'])){ // check if form values are there
    $username = $_POST['name'];
    print ($username);
    mysql_connect("localhost","root","");
    mysql_select_db("addressbook");

    mysql_query("insert into colleague values ('$username')");
}
?>

<form  method="post">
    <input type="name" name="name" /><br />
    <input type="submit" name="mysubmit" value="Submit" />
</form>

您可能还想先学习PHP教程

于 2012-04-10T11:49:04.347 回答