0

我真的是 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&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 变量......哦,天哪,我在这方面很蹩脚。

4

1 回答 1

1

如果您sData使用 GET 或 POST 传递,恢复它的方法是这样的:

如果 URL 是(例如在 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>

如果你只是提交这个,变量id1id2将使用 POST 提交到example.php. 现在这个 PHP 应该这样做:

例子.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,这将起作用,其中 number 在每个新变量(id1、id2、id3、id4 ....)中不断增加 1

在此之后,$values 数组包含所有传递的变量!您可以在查询中或任何您需要的地方使用它们。

于 2012-11-23T15:30:00.403 回答