gpt4 book ai didi

php - 如何迭代页面上的表单字段并将它们发送到数据库?

转载 作者:行者123 更新时间:2023-11-29 14:57:26 25 4
gpt4 key购买 nike

这是 Checkout.php 的代码:

<?php

//Include SimpleSanitize.
include 'simplesanitize.php';

// First attempt at PHP Sessions. Wish me luck.

// Start the session.
session_start();

$product = $_REQUEST["product"];
$qty = $_REQUEST["qty"];
$price = $_REQUEST["price"];

//var_export($product);
//var_export($qty);

if( !isset($_SESSION['last_access']) || (time() - $_SESSION['last_access']) > 71200 )
$_SESSION['last_access'] = time();

// If post is not null, then add selected data to corresponding sessionid in database.
if($_SESSION['last_access'] != null && $qty != null)
{
// Sanitize information.
$info = new SimpleSanitize('request', 'both');

//$product = $info->get('product');
//$quantity = $info->get('qty');
//$price = $info->get('price');


$connection =
mysql_connect("..com","","");





if($connection)
{
mysql_select_db("__dbase", $connection);
foreach($arr as $key => $value){ echo "$key: $value ";}
print_r($val);
$query = "UPDATE sessions SET qty='".$val."' WHERE sessionid='".session_id()."' AND product='".$item."'";
mysql_query($query)
or die(mysql_error());

// Assume items added successfully.
$ItemAddedMessage = "Item added to cart.";

// Close connection to database.
mysql_close($connection);
}
else
$ItemAddedMessage = "Quantities updates";


}
// Open the DB connection and select the DB - creates the function getCreativePagerLyte()
include('configurations.php');

// Gets the data
$id=isset($_POST['id']) ? $_POST['id'] : '';
$search=isset($_POST['search']) ? $_POST['search'] : '';
$multiple_search=isset($_POST['multiple_search']) ? $_POST['multiple_search'] : array();
$items_per_page=isset($_POST['items_per_page']) ? $_POST['items_per_page'] : '';
$sort=isset($_POST['sort']) ? $_POST['sort'] : '';
$page=isset($_POST['page']) ? $_POST['page'] : 1;
$extra_cols=isset($_POST['extra_cols']) ? $_POST['extra_cols'] : array();

// Uses the creativeTable to build the table
include('creativeTable.php');

$ct=new CreativeTable();

// Data Gathering
$params['sql_query'] = 'SELECT product, qty, price FROM sessions WHERE sessionid="'.session_id().'"'; // IMPORTANT: you must specify the fields and not use *
$params['search'] = $search;
$params['multiple_search'] = $multiple_search;
$params['items_per_page'] = $items_per_page;
$params['sort'] = $sort;
$params['page'] = $page;

// Layout Configurations (Most used - the commented lines are the default values)
$params['header'] = 'Product, Quantity, User Action, Price'; // If you need to use the comma use &#44; instead of ,
$params['width'] = ',,,';
//$params['search_init'] = true;
//$params['search_html'] = '<span id="#ID#_search_value">Search...</span><a id="#ID#_advanced_search" href="javascript: ctShowAdvancedSearch(\'#ID#\');" title="Advanced Search"><img src="images/advanced_search.png" /></a><div id="#ID#_loader"></div>';
//$params['multiple_search_init'] = 'hide';
$params['items_per_page_init'] = '10,20,50,100'; // default: '10*$i';
//$params['items_per_page_all'] = '#TOTAL_ITEMS#';
//$params['sort_init'] = true;
//$params['sort_order'] = 'adt';
//$params['ajax_url'] = $_SERVER['PHP_SELF'];

$ct->table($params);

foreach($ct->data as $key => $value){
$ct->data[$key][0]='<input type="text" value="'.$ct->data[$key][0].'" name="product" />';
$ct->data[$key][1]='<input type="text" value='.$ct->data[$key][1].' id="qty" name="qty" />';
$ct->data[$key][2]='<input type="submit" value="Update Item">';
$ct->data[$key][3]='<p name="price">'.$ct->data[$key][3].'</p>';
}

// If its an ajax call
if($_POST['ajax_option']!=''){

if(strpos($_POST['ajax_option'],'items_per_page')!==false)
$out_ajax['items_per_page']=utf8_encode($ct->draw_items_per_page());

if(strpos($_POST['ajax_option'],'body')!==false)
$out_ajax['body']=utf8_encode($ct->draw_body());

if(strpos($_POST['ajax_option'],'pager')!==false)
$out_ajax['pager']=utf8_encode(getCreativePagerLite($page,$ct->total_items,$ct->items_per_page));

echo json_encode($out_ajax);
exit;

}else{

// Insert a Pager into the table (I used this CreativePager Lite version because its very easy to use, but you may use any pager system that you like)
$ct->pager = getCreativePagerLite($page,$ct->total_items,$ct->items_per_page);



}

?>


<!DOCTYPE xhtml PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<head>



<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/creative.css">

<title>Mild Steel Products</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.js" ></script>
<script type="text/javascript" src="js/jquery.tools.min.js"></script>
<script type="text/javascript" src="js/cufon.js"></script>
<script src="js/Kozuka_Gothic.js" type="text/javascript"></script>
<!-- Fix for Internet Explorer 9 Beta -->
<!--[if gte IE 9]>
<script type="text/javascript">
Cufon.set('engine', 'canvas');
</script>
<![endif]-->
<script type="text/javascript" charset="utf-8">
// <![CDATA[
$(document).ready(function(){
Cufon.replace('h1,h2,h3', {
});

$(function() {
$("h3.message").delay(3000).fadeOut();
});

});
// ]]>
</script>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/creative_table.min.js"></script>
<script type="text/javascript" src="js/creative_table_ajax.min.js"></script>

</head>
<body>
<div class="main">
<div class="header">
<div class="logo"><a href="index.php"><img src="images/logo.png" border="0" alt="logo" /></a></div>
<div class="menu">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="products.php">Order Online</a></li>
<li><a href="products.php" class="active">Products</a></li>
<li><a href="about.php">About us</a></li>
<li><a href="contact.php">Contact us</a></li>
</ul>
</div>
<div class="clr"></div>
</div>
<div class="header_text2">
<h2> Checkout</h2>
<p>Adjust your quantities, then click purchase. </p>
<div class="clr"></div>
</div>
<div class="clr"></div>
<div class="top_sup_resize">
<div class="menu2">
<ul>
<!--<li><a href="mildsteel_allthread.php" style="font-size:x-small; color:white;">Allthread</a></li>
<li><a href="mildsteel_hexnuts.php" style="font-size:x-small; color:white;">Hex Nuts</a></li>
<li><a href="mildsteel_washers.php" style="font-size:x-small; color:white;">Washers</a></li>
<li><a href="mildsteel_hnbkss.php" style="font-size:x-small; color:white;">Hex Bolt &amp; Nut Kits, Setscrews</a></li>
<li><a href="mildsteel_screws.php" style="font-size:x-small; color:white;">Screws</a></li>
<li><a href="mildsteel_last.php" style="font-size:x-small; color:white;">Cup Head Bolts &amp; Nuts</a></li>-->
</ul>
</div>
<div class="clr"></div>
</div>
<div class="clr"></div>
<div class="body">
<div class="body_left">
<h2><?php echo $ItemAddedMessage; ?></h2>
<h3 class="message"></h3>
<div id="container">
<?php echo $out=$ct->display(); ?>
</div>

</div>

<p>&nbsp;</p></div>
<div class="clr"></div>
</div>
</div>
<div class="footer">
<div class="footer_resize">
<ul>
<li><a href="index.php">home</a></li>
<li><a href="products.php">order online</a></li>
<li><a href="products.php">products</a></li>
<li><a href="about.php">about</a></li>
<li><a href="contact.php">contact</a></li>
</ul>
<div class="clr"></div>
</div>
</div>
</body>
</html>

我正在尝试在我的页面上提交表单。事实证明,这是一项非常困难且令人沮丧的任务。

问题是无法知道需要提交多少“字段”。用户可能会向购物车添加 50 种产品,并对数量进行 30 次更改,或者他们可能会向购物车添加 600 种产品,并对数量进行 599 次更改(你永远不知道),并且通过此网站,客户期望很高销售量,所以我需要为此类情况做好准备。

我有一个表(我购买的脚本),它有自己的表内数据表单标记,但它使用 GET 而不是 POST。我正在使用:

foreach($_GET['items'] as $p=>$q)
{
// Update in database. This sql query has been tested, so I know it works, which means that the problem lies within the foreach loop, since it only stopped working when I added the foreach loop to update all form fields.
}

我已经搜索了所有 ovver php.net、google,但没有任何想法,非常感谢任何人的建议或帮助。

如何将所有表单字段更新到数据库?

谢谢

编辑:

print_r($_GET) 的结果;是:

Array ( [ct_items_per_page] => 10 [ct_sort] => t_t_t_t [ct_page] => 1 [ct_search] => [ct_items_per_page_change] => all [ct_multiple_search] => Array ( [0] => [1] => [2] => [3] => ) [product] => M5 x 1 MTR Allthread (Grade 304 Unit Price) [items] => Array ( [1] => 45 ) ) 

编辑:

还有什么适合我的情况?有人有任何链接/教程/文章吗?我在任何地方都找不到任何东西。是否有其他方法将所有字段提交到数据库?

最佳答案

路西法,

您说您购买了脚本,为什么不首先联系您的购买者来解决您的问题?

令我担心的是,您列出的代码很少,因此我们无法帮助您,因为您只是说“这不起作用!请帮我解决它!”,我们会帮助您。向我们展示 FORM 代码和处理代码。

您确定提交的表单是 $_GET 吗?您确定变量在表单中名为 $items[] 吗?

<小时/>

如果我正在解决这个问题,或者至少寻求帮助,我会列出上述所有代码,并添加大量调试,添加以下内容:

  1. 添加 /* comment */ 标记来注释 SQL 插入部分(因为您不想在每次测试时都清理所有内容)。
  2. 添加 var_dump 标签以输出尽可能多的变量。
  3. 如果有任何 JavaScript 处理程序处理初始表单,则使用 Firefox Firebug 进行调试。
<小时/>

更新2010 年 11 月 23 日/checkout.php

我已经快速检查了您的设置,您正在使用 AJAX 表来管理搜索/显示您的产品。您可以尝试以下几种方法。

  1. 使用 jQuery serialize() 序列化(如果您想使用此路由,则需要研究这一点)您的数据并将其作为 POST 请求提交到您的后端(无论那是什么?相同的 checkout.php?)。
  2. 您需要修改 checkout.php 页面以拥有实际的提交按钮,目前这一切都是通过 AJAX(javascript 提交)处理的,该按钮是为 GET 设置的,而不是 POST。您还必须将您的表单更新为 action="POST"。在您的结帐表单中添加一个实际的提交按钮,您只有用于更新数量的更新按钮。
<小时/>

如果无法为您提供一些咨询,就无法“快速”告诉您要更改什么以及在哪里更改,这将需要一些时间来修改,但是我在上面概述了 2 个选项,如果您愿意,您可以解决。

关于php - 如何迭代页面上的表单字段并将它们发送到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com