-4
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="admin page.php">
   <p>
     <label for="Name">Name</label>
     <input type="text" name="Name" id="Name" />
   </p>
   <p>
     <label for="Age">Age </label>
     <input type="text" name="Age" id="Age" />
   </p>
   <p>
     <label for="Email">Email</label>
     <input type="text" name="Email" id="Email" />
   </p>
   <p>
     <label for="DOB">DOB</label>
     <input type="text" name="DOB" id="DOB" />
   </p>
   <p>
     <input type="button" name="add" id="add" value="Add" onclick="func();" />
   </p>
</form>

<?php 

 function func()
 {
  $con = mysql_connect("127.0.0.1","root","") or die(mysql_error());
  $db = mysql_select_db("lr") or die(mysql_error());
  $sql=mysqli_query("INSERT INTO Persons (Name,age,Email,DOB)
                                       VALUES ('&Name', '&Age','&Email','&DOB')");
  if($sql){echo "Welcome ".$Name.",you may Login now! ";}

   mysql_close($con);    
 }

?>
</body>

这是我想在同一页面上运行查询的代码!我无法在其他页面上执行此操作,因为我想在此页面中递归添加用户。我在单击时调用了函数 func 来执行此操作,但它不起作用。

4

3 回答 3

2

在您的代码中尝试以下更正/更改:

  • 表单中的操作: <form id="form1" name="form1" method="post" action="admin page.php">- admin 和 page.php 之间没有空格!

  • func(). 您不能使用 onclick 调用 php。只需删除该行onclick="func();"。表单提交操作将执行您想要的操作。并删除func() {}并只留下 php

  • 插入:更改&$连接您的变量。例如,我强烈建议您为表单输入添加一些验证以避免 sql 注入。

  • 从输入字段$Age = $_POST["Age"]中获取变量:用于从表单帖子中获取变量。

  • 如果您只是在查询中替换为您需要正确转义您可以使用的所有请求,您的代码很容易受到sql 注入的影响&$mysql_*mysql_real_escape_string()

  • Mysql_*api 已弃用,因此请使用PDOMySQLi,而 imo 使用PDO

  • 您还混合了两种不同的 api mysqli_*( mysqli_query) 和mysql_*api,它们不起作用

于 2013-06-05T05:26:53.143 回答
2

尝试这样的事情

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
if(isset($_POST['add']))
{
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

   $name= $_POST['Name'];
   $age= $_POST['Age'];
   $email= $_POST['Email'];
   $dob= $_POST['DOB'];

$sql = "INSERT INTO employee ".
       "(name,age, email, dob) ".
       "VALUES('$name','$age','$email','$dob')";
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}
else
{
?>
<form id="form1" name="form1" method="post" action="<?php $_PHP_SELF ?>">
   <p>
     <label for="Name">Name</label>
     <input type="text" name="Name" id="Name" />
   </p>
   <p>
     <label for="Age">Age </label>
     <input type="text" name="Age" id="Age" />
   </p>
   <p>
     <label for="Email">Email</label>
     <input type="text" name="Email" id="Email" />
   </p>
   <p>
     <label for="DOB">DOB</label>
     <input type="text" name="DOB" id="DOB" />
   </p>
   <p>
     <input type="submit" name="add" id="add" value="Add" />
   </p>
</form>
<?php
}
?>
</body>
</html>
于 2013-06-05T05:38:23.433 回答
0

你可以像这样使用 ajax 来做到这一点:

//Submit form without refreshing page
 $.ajax({
        type: "POST",
        url: "update.php",
        data: dataString,
        success: function(){
            $('.success').fadeIn(200).show();
            $('.error').fadeOut(200).hide();
        }
    });

请参考这里jQuery.ajax()

演示

于 2013-06-05T05:27:27.640 回答