2012-11-23 45 views
0

我真的很新的JavaScript和JQuery,我使用JQuery數據表。我已閱讀頁面100次,相比HTML源代碼,我設法弄清楚如何通過檢查僅領域進入SDATA陣列...反正...JQuery Datatables將數據序列化到MySQL數據庫

我有此數組:

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 VAR裝進PHP變量...哦,天哪,我這真差勁。

回答

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 submited。現在,這個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 +數字,其中數字保持在每一個新的變量增加1( id1,id2,id3,id4 ....)

在$ values數組之後,所有變量都通過了!你可以在查詢或任何你需要的地方使用它們。

+0

好的我做了你所說的關於ID1 = 1等。我怎樣才能將這個sData數組傳遞到$ values數組? –

+1

哦,你的意思是如何從Jquery傳遞給PHP文件?這是一個AJAX調用。你基本上需要觸發一個事件,它會啓動一個javascript/Jquery函數(例如按鈕中的onclick =「something()」),然後執行一個'$ .post(「example.php」,{$(「 #Form「)。serialize()},function(data){alert(」OK「);});' – Naryl

+0

哈哈......我不確定。編輯我的帖子也許現在更清楚了? –

相關問題