从表单向数据库提交值

时间:2014-04-14 14:41:52

标签: php mysql ajax database insert

我有一个结算页面,可以从购物车中获取数据。

我在向数据库提交这些值时遇到问题。我如何更正我的PHP以使其正确提交到数据库?

例如,我的数据库中有一个交易表,我希望所有付款详细信息都可以到达,以后可以在管理部分中获取并输出作为订单收据。

我无法正确提交姓名,地址,电子邮件,电话。它在数据库中出现0,我该如何解决这个问题?

如果单击按钮以显示加载栏/页面然后显示成功消息,我如何专门使用AJAX?

我也得到错误:

Notice: Undefined index: command in F:\xamppnew\htdocs\web\billing.php on line 5

代码:

    <?php
include "storescripts/connect_to_mysql.php"; 
session_start(); 

if($_REQUEST['command']=='update'){
        $name=$_REQUEST['name'];
        $email=$_REQUEST['email'];
        $address=$_REQUEST['address'];
        $phone=$_REQUEST['phone'];
        $item_id = $_SESSION['item_id'];
        $quantityorder = $each_item['quantity'] = $_SESSION['quantity1'];
        $cartTotal = $_SESSION['cartTotal'];

    // Add this product into the database now
    $sql = mysqli_query($link,"insert into transactions values('','$item_id','$quantityorder','$cartTotal','$name','$address','$email','$phone')");

        die('Thank You! your order has been placed!');
    }
?>
<!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" />
<link rel="stylesheet" href="style/style.css" type="text/css" media="screen" />
<title>Billing Info</title>
<script language="javascript">
    function validate(){
        var f=document.form1;
        if(f.name.value==''){
            alert('Your name is required');
            f.name.focus();
            return false;
        }
        f.command.value='update';
        f.submit();
    }
</script>
</head>



<body>
<div align="center" id="mainWrapper">
  <?php include_once("template_header.php");?>
  <div id="pageContent">
    <div style="margin:24px; text-align:left;">

    <br />
<form name="form1" onsubmit="return validate()">
    <input type="hidden" name="command" />
    <div align="center">
        <h1 align="center">Billing Info</h1>
        <table border="0" cellpadding="2px">
             <tr><td>Product ID:</td><td><?php echo $item_id = $_SESSION['item_id'];?></td></tr>
            <tr><td>Total Quantity:</td><td><?php echo $each_item['quantity'] = $_SESSION['quantity1']; ?></td></tr>
            <tr><td>Order Total:</td><td>£<?php echo $cartTotal = $_SESSION['cartTotal'];?></td></tr>
            <tr><td>Your Name:</td><td><input type="text" name="name" /></td></tr>
            <tr><td>Address:</td><td><input type="text" name="address" /></td></tr>
            <tr><td>Email:</td><td><input type="text" name="email" /></td></tr>
            <tr><td>Phone:</td><td><input type="text" name="phone" /></td></tr>
            <tr><td>&nbsp;</td><td><input type="submit" value="Place Order" /></td></tr>
        </table>
    </div>
    </div>


      <?php include_once("template_footer.php");?>

</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

优先使用addslashes覆盖您的值,然后在SQL查询中将它们连接起来

    $name    = addslashes($_REQUEST['name']);
    $email   = addslashes($_REQUEST['email']);
    $address = addslashes($_REQUEST['address']);
    $phone   = addslashes($_REQUEST['phone']);

答案 1 :(得分:0)

你使用Mysqli进行连接吗? 如果是,请将mysql_query更改为mysqli_query

您需要在提交按钮中添加“name”属性 并且这样做

if(isset($_POST['submit'])){....