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 ループはおそらく大きな失敗です...しかし、PHP 変数に入れるには、この sData var が必要です...ああ、私はこれがとても不自由です。

4

1 に答える 1

1

GET または POST を使用して渡している場合sData、それを回復する方法は次のようになります。

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 は次のようになります。

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);

これは、新しい変数 (id1、id2、id3、id4 ....) ごとに number が 1 ずつ増え続ける id+number という名前のすべての変数を使用する場合でも機能します。

この後、$values 配列は渡されたすべての変数を含んでいます! クエリや必要な場所で使用できます。

于 2012-11-23T15:30:00.403 に答える