2011-03-29 41 views
0

我的目標是通過Ajax發送數據到服務器。javascript變量通過ajax問題到服務器

但服務器沒有完全接收數據。

這是我寫的代碼。

在javascript

var a = 1, b = 2, c = 3, d = 4, e = 5; 
var f = { 'h':11, 'i':22, 'j':33}; 
$.ajax({ 
    type: 'POST', 
    url: url, 
    dataType: 'json', 
    data: { 'a':a, 'b':b, 'c':c, 'd': d, 'e': e,'dataImportant': f}, 
    success: function(result){ 
     /* do something */ 
    }, 
    error: function(result){ 
     /* do something */ 
    } 
}); 

在PHP

function getAjax(){ 
    $a = $this->input->post("a"); 
    $b = $this->input->post("b"); 
    $c = $this->input->post("c"); 
    $d = $this->input->post("d"); 
    $e = $this->input->post("e"); 
    $f = $this->input->post("dataImportant"); 
    echo "<pre>"; 
    print_r($f); 
    echo "</pre>"; 
    return; 
} 

結果:

<pre></pre> 

我打算得到以陣列的形式的數據。

但它不能很好地到達

我的錯誤是什麼?

+0

我刪除了駱駝案例符號,並沒有問題。 – soredive 2011-03-30 02:35:41

+0

dataImportant X數據重要O.也許駱駝大小寫符號不是通過Ajax提供的一種方式 – soredive 2011-03-30 02:46:41

回答

1

a,b,c, d等...在您的JavaScript定義的變量?如果沒有,你只是palying:

var f = { h:'11', i:'22', j:'33'}; 
$.ajax({ 
    type: 'POST', 
    url: url, 
    dataType: 'json', 
    data: { 'a':'a', 'b':'b', 'c':'c', 'd':'d', 'e':'e','f':'f' }, 
    success: function(result){ 
     /* do something */ 
    }, 
    error: function(result){ 
     /* do something */ 
    } 
}); 
0

我覺得你並不需要在你的數據聲明引號:

data: { a:a, b:b, c:c, d:d, e:e, f:f}, 

的第一個字母定義你所命名下面的值。

{name:value, name:value} 

,如果你在數據聲明定義它,您只需要在值引號

data: {a:'a',b:'b',etc} 

試試我的第一個例子,看看你的PHP腳本可以重複發送的值。

+1

JSON可以使用字符串文字來定義對特殊字符特別有用的對象變量:'obj = {'hyphen-ated':'foo'}'是完全有效的。 – zzzzBov 2011-03-29 20:16:38

相關問題