2013-10-16 56 views
0

我试图传递一个动态值,一个产品的ID。通过一个表单,我可以写入一个MySQL数据库。php表单将动态值,一个项目ID传递给mysql

我的问题是该值没有通过窗体传递。我怀疑这是由于我试图将一个表的值传递给另一个表。我应该为这个$ item_id设置一个临时变量吗?还是有可能通过?请帮助..

我的购物车,在这里我呼应了$ ITEM_ID,这显示最后$ ITEM_ID在浏览器中可见:

<div> 
<?php 
echo $item_id 
?> 
<form method="post" action="checkoutpage.php"> 
<input type="hidden" name="product_bought" value="<?php echo $item_id ?>"> 
<input type="submit" value="Submit"> 
</form> 

checkoutpage.php:

<?php 
session_start(); // Start session first thing in script 
// Script Error Reporting 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
// Connect to the MySQL database 
include "storescripts/connect_to_mysql.php"; 
?> 
<!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>checkout form</title> 
</head> 

<body> 
<form action="insert.php" method="post"> 
Name: <input type="text" name="name"> 
Email: <input type="text" name="email"><br /> 
Credit Card: <input type="text" name="credit_card"> 
<input type="hidden" name="product_bought" value='product_bought'> 
<input type="submit"> 
</form> 
</body> 
</html> 

插入结帐页面上.PHP

<?php 
$con=mysqli_connect("localhost","xxxx","xxxx","mystore"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$sql="INSERT INTO orders (name, email, credit_card, product_bought) 
VALUES 
('$_POST[name]','$_POST[email]','$_POST[credit_card]','$_POST[product_bought]')"; 

if (!mysqli_query($con,$sql)) 
    { 
    die('Error: ' . mysqli_error($con)); 
    } 
echo "1 record added"; 

mysqli_close($con); 
?> 
+0

您需要设置'checkoutpage.php'上的值 - 此刻,它的值是普通字符串'product_bought'。你可以像在'insert.php'上检索一样来检索那个页面上的值。 – andrewsi

+0

不会解决你的问题,但是你应该为你的'echo'添加一个'else'1记录。 ' - 在'echo $ item_id'末尾添加一个分号 - 并且''session_start();'connect_to_mysql.php'内? –

+0

试试这个'$ sql =(“INSERT INTO订单名称,email,credit_card,product_bought VALUES ('$ _POST [name]','$ _ POST [email]','$ _ POST [credit_card]','$ _ POST [product_bought]'),$ con)“;' –

回答

0

您有:

<input type="hidden" name="product_bought" value='product_bought'> 

,你应该有:

<input type="hidden" name="product_bought" value='<?php echo $_POST['product_bought']; ?>'> 

你传入 “product_bought” 作为值。

我希望它修复它。

+0

是的,解决了这个问题!最初我有:'input type =“hidden”name =“product_bought”value ='<?php echo $ item_id?>'>'但它不起作用,它只是响应数据库的可变权限内容。所以我几乎放弃了,只是认为一个纯文本或表单名称会使它哈哈。感谢帮助我:) – Onizuka