2016-03-21 58 views
0

嗨我想將3個值傳入一些Javascript。這適用於第一個功能。所有的值都認爲是正確的在這裏......JavaScript不通過函數的值

function handleClick(cb,colum,id) { 
    if (cb.checked == true){ 
    var checked = 1; 
    } else { 
    var checked = 0; 
    } 
    sendHddToPHP2(checked,column,id); 
} 

但是一旦第二函數被調用我得到什麼....

function sendHddToPHP2(editableObj,column,id) { 
    window.alert(editableObj); 
    $.ajax({ 
      url: "update/hdd.php", 
      type: "POST", 
      data:'column='+column+'&editval='+editableObj+'&id='+id, 
      success: function(data){ 
        $(editableObj).css("background","#FDFDFD"); 
        } 
    }); 
} 

我添加了警報檢查變量存在並且沒有運行。我看不到任何拼寫錯誤,並且我的知識在Javascript上不是很棒。有什麼我錯過了嗎?

+0

定義「無」。你有什麼在你的錯誤控制檯?你是否在你的'成功'回調中放置了調試器語句?你添加了一個'錯誤'回調?你有沒有任何錯誤或任何事情發生? – zero298

+0

請注意,您也可以通過使用三元操作將它壓縮爲單行: 'var checked = cb.checked? 1:0' – AnthonyDJ

回答

3

您在參數列表中有一個錯字:「colum」。

此外,似乎您希望稍後訪問Ajax回調中的複選框,由於您試圖通過複選框的「editableObj」值而不是元素來引用它,因此會失敗。

+0

哦,哇,我不能相信我沒有看到它,謝謝。我以爲我已經做到了這一點 – JackGroves

0

當我知道你想你的函數是這樣的:

function handleClick(cb,colum,id) { 
    var checked = (cb.checked)?1:0;//same as(cb.checked==true)1:0 
    sendHddToPHP2(checked,column,id); 
} 

但你確定要返回1或0?因爲在第二個功能中,您將使用$(1).css("background","#FDFDFD"); $(0).css("background","#FDFDFD");