Javascript 带有数据库发送的两步表单。有一个大的post数组
让我先解释一下这个脚本是如何工作的。在步骤0中,我们输入数据(列表编号、最小值和最大值)。脚本对范围进行计数,并使用数值推送数组。(最小值+1,直到达到最大值) 然后发送到步骤1。这是一个预览网站。它显示最小值、最大值、范围和每个数字 第2步是发送到数据库(按submit)。此脚本在没有步骤实现的情况下运行顺利。但在设置了step系统之后,在将其发送到数据库之前,我不知何故丢失了数字数组和所有数据(步骤2不知何故没有得到步骤1的值)。范围可以高达2k值,很可能更小。我关心的是,是否有一种方法不让它们的值显示在url中,从而让它们进入其他步骤,因为这些数字每个都有24个数字,所以url可能非常长。你能和我分享一下如何修复它的想法吗?以及如何将步骤1的值检索到步骤2中(db发送)。谢谢Javascript 带有数据库发送的两步表单。有一个大的post数组,javascript,php,Javascript,Php,让我先解释一下这个脚本是如何工作的。在步骤0中,我们输入数据(列表编号、最小值和最大值)。脚本对范围进行计数,并使用数值推送数组。(最小值+1,直到达到最大值) 然后发送到步骤1。这是一个预览网站。它显示最小值、最大值、范围和每个数字 第2步是发送到数据库(按submit)。此脚本在没有步骤实现的情况下运行顺利。但在设置了step系统之后,在将其发送到数据库之前,我不知何故丢失了数字数组和所有数据(步骤2不知何故没有得到步骤1的值)。范围可以高达2k值,很可能更小。我关心的是,是否有一种方法不让
$(文档).ready(函数(){
$(“#低”).keydown(函数(事件){
if(event.keyCode==46 | | event.keyCode==8){
//让它发生吧,什么都不要做
}否则如果(event.keyCode<48 | | event.keyCode>57){
event.preventDefault();
}
var remainingChars=$(this).val().length;
如果(剩余字符==24){
$(this.attr('readonly','readonly');
}
});
$(“#高”).keydown(函数(事件){
if(event.keyCode==46 | | event.keyCode==8){
//让它发生吧,什么都不要做
}否则如果(event.keyCode<48 | | event.keyCode>57){
event.preventDefault();
}
var remainingChars=$(this).val().length;
如果(剩余字符==24){
$(this.attr('readonly','readonly');
}
});
$(“#ln”).keydown(函数(事件){
if(event.keyCode==46 | | event.keyCode==8){
//让它发生吧,什么都不要做
}否则如果(event.keyCode<48 | | event.keyCode>57){
event.preventDefault();
}
var remainingChars=$(this).val().length;
如果(剩余字符==24){
$(this.attr('readonly','readonly');
}
});
$(“#DueDate”).datepicker();
$(“#DueDate”).datepicker(“选项”、“日期格式”、“yy-mm-dd”+”+getCurrentTime());
函数getCurrentTime(){
var CurrentTime=“”;
试一试{
var CurrentDate=新日期();
var CurrentHours=CurrentDate.getHours();
var CurrentMinutes=CurrentDate.getMinutes();
CurrentTime=“+CurrentHours+”:“+CurrentMinutes+”;
}
捕获(ex){
}
返回时间;
}
});
最小值:
最大值:
范围:
Lp
数
范围列表生成器
设置
打开:
日期:
ID:
类型
优先级:
正常的
高
列表类型:
K
N
字母:
列表编号:
范围:
范围:
杀手代码画布,我怀疑最终会有人读到它你的意思是什么
<?PHP
if (!defined("_VALID_PHP"))
die('Direct access to this location is not allowed.');
$db_handler = new PDO('mysql:host=localhost;dbname=proj2', 'root', '');
ini_set('memory_limit', '2000M');
ini_set('post_max_size', '600M');
ini_set('upload_max_filesize', '640M');
$step = 0;
$msg = array();
?>
<?php
if (isset($_GET['error'])) {
if($_GET['error']== 2){
echo $core->msgError("<span>Alert!</span>List has over (2000) entries.",false);
}
if($_GET['error']== 1){
echo $core->msgError("<span>Alert!</span>List already exists.",false);
}
}
unset($_POST['submit']);
unset($sub_items);
unset($_POST['mainItem']);
?>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js' type='text/javascript'></script>
<script type="text/javascript">
$(document).ready(function(){
$("#low").keydown(function(event){
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
}else if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
$(this).attr('readonly','readonly');
}
});
$("#high").keydown(function(event){
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
}else if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
$(this).attr('readonly','readonly');
}
});
$("#ln").keydown(function(event){
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
}else if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
$(this).attr('readonly','readonly');
}
});
$("#DueDate").datepicker();
$( "#DueDate" ).datepicker( "option", "dateFormat", "yy-mm-dd" + " " + getCurrentTime() );
function getCurrentTime() {
var CurrentTime = "";
try {
var CurrentDate = new Date();
var CurrentHours = CurrentDate.getHours();
var CurrentMinutes = CurrentDate.getMinutes();
CurrentTime = "" + CurrentHours + ":" + CurrentMinutes +"";
}
catch (ex) {
}
return CurrentTime;
}
});
</script>
<?PHP if(isset($_POST['analizuj']) && $_POST['step']=='1'){
if($_POST['high'] == NULL || $_POST['ln'] == NULL || $_POST['DueDate'] == NULL || $_POST['low'] == NULL){
header('location: index.php?do=bulkadd');
echo $core->msgError("<span>Alert!</span>Fields ListNumber,Range,Date cant be empty.",false);
}else{
$liczba_a=$_POST['high'];
$liczba_b=$_POST['low'];
$numbers = array($liczba_a, $liczba_b);
$min = min($numbers);
$max = max($numbers);
$a = round(bcsub($max, $min)).'<br>';
$diffcap = round($a);
if($a > 2000){ header('location: index.php?do=bulkadd&error=2'); exit();
}else{
$size=range(0,$diffcap);
//$i = 0;
$count = round($diffcap);
$array= array();
$i=0;
foreach ($size as &$value) {
array_push($array, preg_replace('/^([^.]*).*$/', '$1',bcadd($min, $i)));
$i++;
}
if(count($array) > 2000){ header('location: index.php?do=bulkadd&error=2'); exit();}
}
}
?>
<form id="details" method="post" action="index.php?do=bulkadd">
<table cellpadding="0" cellspacing="0" border="0" class="display" id="subitemsTbl">
<thead>
<tr>
<th>Min Value : <?PHP echo $min; ?></th>
<th>Max Value : <?PHP echo $max; ?></th>
</tr>
</thead>
<tbody>
<tr cellpadding="2"><td><strong>Range :</strong> <?PHP echo $a; ?></td></tr>
</tbody>
</table>
<br>
<br>
<table cellpadding="0" cellspacing="0" border="0" class="display" id="subitemsTbl">
<thead>
<tr>
<th>Lp</th>
<th>Number</th>
</tr>
</thead>
<tr cellpadding="2"><td><input type="submit" value="Send to Db" name="licz" class="button-sml"/>
<input type="hidden" name="step" value="2" /></td></tr>
<br>
<tbody id="body">
<?PHP
$fakeid=1;
foreach($array as $key=>$value)
{
unset($array[$key + 1]);
// Note that there is no $b here.
echo '<tr id="rowNum'.$fakeid.'"><th>'.$fakeid.'</th><td><input class="inputbox-sml" type="text" name="subItem[]" readonly="readonly" value="'.$value.'" size="24" style="width:210px;"></td></tr>';
$fakeid++;
}
?>
</tbody>
</table>
<?PHP }else{ ?>
<div id="wrap">
<h1>Range List Generator</h1>
<form id="details" method="post" action="index.php?do=bulkadd">
<fieldset>
<legend>Set</legend>
<strong>On : </strong>
<select name="forwho" style="width:180px">
<?PHP
$sql = 'SELECT id, name, surname FROM customers ORDER BY name';
foreach ($db_handler->query($sql) as $row) {
echo "<option value='".$row['id']."'>".$row['name'] ." ".$row['surname']. "</option>";
}
?>
</select>
<br>
<strong>Date :</strong> <input id="DueDate" name="DueDate" style="font-size: 12px;" type="text" class="inputbox-sml"/><br>
<strong>ID :</strong> <?PHP echo $user->getID(); ?></fieldset><br>
<fieldset>
<legend>Type</legend>
<strong>Prority : </strong>
<select name="priority" style="width:180px">
<option value="0">Normal</option>
<option value="1">High</option>
</select><br>
<strong>List Type :</strong>
<select name="type" style="width:180px">
<option value="1">K</option>
<option value="0">N</option>
</select><br>
<strong>Letters : </strong><input type="text" name="letters" id="letters" maxlength="4" class="inputbox-sml"/>
</fieldset><br>
<strong>List Number: </strong><input type="text" name="ln" id="ln" maxlength="24" class="inputbox-sml" style="width:210px;"/><br/><br/>
<hr><br>
<strong>Range : </strong><input type="text" name="high" id="high" maxlength="24" class="inputbox-sml" style="width:210px;"/><br/><br/>
<strong>Range : </strong> <input type="text" name="low" id="low" maxlength="24" class="inputbox-sml" style="width:210px;"/><br/><br/>
<input type="submit" value="Analizuj" name="analizuj" class="button-sml"/>
<input type="hidden" name="step" value="1" />
<!-- OLD TABLE START -->
</form>
</div>
<?php
}
if (isset($_POST['licz']) && $_POST['step']=='2') {
if($_POST['high'] == NULL || $_POST['ln'] == NULL || $_POST['DueDate'] == NULL || $_POST['low'] == NULL){
header('location: index.php?do=bulkadd');
echo $core->msgError("<span>Alert!</span>Can't be empty.",false);
}else{
$liczba_a=$_POST['high'];
$liczba_b=$_POST['low'];
$numbers = array($liczba_a, $liczba_b);
$min = min($numbers);
$max = max($numbers);
$a = round(bcsub($max, $min)).'<br>';
$diffcap = round($a);
//secure 1
if($a > 2000){ header('location: index.php?do=bulkadd&error=2'); exit();
}else{
$size=range(0,$diffcap);
//$i = 0;
$count = round($diffcap);
$array= array();
$i=0;
foreach ($size as &$value) {
array_push($array, preg_replace('/^([^.]*).*$/', '$1',bcadd($min, $i)));
$i++;
}
if(count($array) > 2000){ header('location: index.php?do=bulkadd&error=2'); exit();}
}
}
//Handle main item already exists error
try {
$stmt = $db_handler->prepare('SELECT * FROM listy WHERE number=?');
$stmt->bindValue(1, $_POST['ln'], PDO::PARAM_STR);
$stmt->execute();
$row_count = $stmt->rowCount();
if($row_count > 0){ header('location: index.php?do=bulkadd&error=1'); exit();}
} catch(PDOException $ex) {
die($ex->getMessage());
}
try {
$stmt = $db_handler->prepare('INSERT INTO listy (number,letters,forwho,bywho,prority,type,created) VALUES(?,?,?,?,?,?,?)');
$stmt->bindValue(1, $_POST['ln'], PDO::PARAM_STR);
$stmt->bindValue(2, $_POST['letters'], PDO::PARAM_INT);
$stmt->bindValue(3, $_POST['forwho'], PDO::PARAM_INT);
$stmt->bindValue(4, $user->getID(), PDO::PARAM_INT);
$stmt->bindValue(5, $_POST['priority'], PDO::PARAM_INT);
$stmt->bindValue(6, $_POST['type'], PDO::PARAM_INT);
$stmt->bindValue(7, $_POST['DueDate'], PDO::PARAM_STR);
$stmt->execute();
} catch(PDOException $ex) {
die($ex->getMessage());
}
//Insert loop
$mainRowId = 0;
$mainRowId = $db_handler->lastInsertId();
$sub_items = array_unique($array);
//print_r($_POST);
//print_r($sub_items);
foreach($sub_items as $this_sub){
//echo $this_sub;
try {
$stmt = $db_handler->prepare('INSERT INTO numbers (`list_id`,`number`,`return`,`date`) VALUES(?,?,?,?)');
$stmt->bindValue(1, $mainRowId, PDO::PARAM_INT);
$stmt->bindValue(2, $this_sub, PDO::PARAM_STR);
$stmt->bindValue(3, 0, PDO::PARAM_INT);
$stmt->bindValue(4, $_POST['DueDate'], PDO::PARAM_STR);
$stmt->execute();
$subRowId = 0;
$subRowId = $db_handler->lastInsertId();
$stmt = $db_handler->prepare('INSERT INTO list_has_number (`list_id`,`number_id`) VALUES(?,?)');
$stmt->bindValue(1, $mainRowId, PDO::PARAM_INT);
$stmt->bindValue(2, $subRowId, PDO::PARAM_INT);
$stmt->execute();
} catch(PDOException $ex) {
die($ex->getMessage());
}
}
//
//while ($i < $count) {
// echo 'array '.$b = bcadd($liczba_a, $i).'<br>';
// array_push($array, $b);
// ++$i;
//}
//var_dump($array);
} else {
echo "Error";
}
?>