我是javascript和JQuery的新手,我使用的是JQuery数据表。我已经阅读了100次页面并比较了html源代码,我设法弄清楚如何将唯一的已检查字段传递给sData数组......无论如何......
我有这个数组:
var sData
提醒我在提交表单时选择了哪些行,它提供了类似的内容:
1=1&2=2&10=10&18=18
在此之前,我使用简单的表格,每行都有一个按钮,保留我选择的那个,所以这一步对我来说真的很让人困惑......
我使用此查询将它们添加到数据库中:
if (isset($_POST['addtolist']) )
{
$itemid=mysql_real_escape_string($_POST['itemid']);
$AddToListQuery = "
INSERT INTO
reservelist
(itemid, projectid)
VALUES
('$itemid', '" . mysql_real_escape_string($_SESSION['projectidtoreserve']) . "')
";
mysql_query($AddToListQuery, $conn);
header('Location: pm_reserving.php');
exit();
}
每次点击指定表格行的按钮后都会执行。
但现在我不知道如何将这个sData数组传递给查询...
我现在不能像现在这样使用sData
将其输入数据库,因为它没有任何意义:/ ...我该怎么办?这个sData?
修改
我的JQuery代码现在:
$('#form').submit( function() {
var sData = $('input', oTable.fnGetNodes()).serialize();
alert( "The following data would have been submitted to the server: \n\n"+sData );
} );
oTable = $('#table1').dataTable();
我的表格:
<form id="form" action="" method="post">
<button type=submit name=addtolist>Button</button>
当我提交表单时,我会收到上面提到的警告(但现在id1 = 1&amp; id2 = 2等)。
PHP:
if (isset($_POST['addtolist']) )
{
$x=1;
$values=array('+sData');
while(isset($_POST['id'.$x]))
{
$values[$x-1]=$_POST['id'.$x];
$AddToListQuery = "
INSERT INTO
reservelist
(itemid, projectid)
VALUES
('". mysql_real_escape_string($_POST['id'.$x]) ."', '" . mysql_real_escape_string($_SESSION['projectidtoreserve']) . "')
";
$x++;
}
mysql_query($AddToListQuery, $conn);
header('Location: pm_reserving.php');
exit();
}
这个PHP循环可能是一个很大的失败......但是我需要将这个sData变量放入PHP变量中......哦,上帝,我对此非常蹩脚。
答案 0 :(得分:1)
如果你使用GET或POST传递sData
,恢复它的方法是这样的:
如果网址是(例如在GET中):www.url.com?key=value&key2=value2
在PHP中,您将其读作:
$value=$_GET['key']; // if you used POST it's $value=$_POST['key'];
$value2=$_GET['key2'];
所以在你的例子中它将是:
$id1=$_GET['1'];
$id2=$_GET['2'];
....
正如您所看到的那样,它并不理想,因为您需要知道ID才能读取ID ... sData
的格式要好得多:
id1=1&id2=2&id3=10&id4=18
你会读到:
$id1=$_GET['id1']; //gets a 1
$id2=$_GET['id2']; //gets a 2
$id3=$_GET['id3']; //gets a 10
$id4=$_GET['id4']; //gets a 18
阅读它的简单方法是:
$x=1;
$values=array();
while(isset($_GET['id'.x])){
$values[$x-1]=$_GET['id'.x];
$x++;
}
echo "Number of Ids=".($x-1);
print_r($values);
编辑:如果您正在修改表单,这一切是如何工作的。
<form id="form" action="example.php" method="post">
<input type="text" id="id1" name="id1" value="1" />
<input type="text" id="id2" name="id2" value="2" />
<button type=submit name=addtolist>Button</button>
如果您只是提交此内容,则变量id1
和id2
将使用POST提交到example.php
。现在这个PHP应该这样做:
使用example.php
$x=1;
$values=array();
while(isset($_POST['id'.x])){
$values[$x-1]=$_POST['id'.x];
$x++;
}
echo "Number of Ids=".($x-1);
print_r($values);
即使您使用更多变量,如果它们都被命名为id + number,其中数字在每个新变量(id1,id2,id3,id4 ......)中保持增加1,这将有效。
在此之后,$ values数组会包含所有传递的变量!您可以在查询中或任何需要的地方使用它们。