【问题标题】:Submitting values to database from form从表单提交值到数据库
【发布时间】:2014-04-14 14:41:52
【问题描述】:

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

我在将这些值提交到数据库时遇到问题。如何更正我的 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>

【问题讨论】:

  • 您的代码中是否有任何错误?
  • 是的,目前我收到通知:未定义索引:第 5 行 F:\xamppnew\htdocs\web\billing.php 中的命令
  • 我已更新问题以获得更多详细信息。
  • 您不应该直接让 ($_Request['command']='update') 而是将其更改为 (isset($_Request['command'])) 然后检查 command='update '

标签: php mysql ajax database insert


【解决方案1】:

你是用Mysqli连接的吗? 如果是,将 mysql_query 更改为 mysqli_query

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

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

【讨论】:

    【解决方案2】:

    在 sql 查询中连接值之前,最好在值上使用 addslashes

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

    【讨论】:

    • 没有真正回答我的问题,但感谢您的建议
    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多