2017-08-25 35 views
2

我目前使用PHP循環從數據庫中產生面板。 在每個面板上都有一個複選框。勾選後,它會檢查摺疊面板下的所有複選框。複選框正在檢查,但沒有做功能

當面板的複選框獲得通過複選框在面板頭檢查是指運行哪些更新我的數據庫說複選框被選中的功能。該功能適用​​於您在可摺疊面板下手動檢查框。但是,當你從一個更高的水平選中複選框,並檢查所有的箱子波紋管它,它不運行的onchange函數我已經把英寸

誰能幫助?

感謝, 克里斯蒂安

PHP:

foreach ($results3 as $table3) { 
     $output_string .= "<div class=\"panel-inner\">\n"; 
     $output_string .= "<div class=\"row\">\n"; 
     $output_string .= "<div class=\"col-sm12\">\n"; 
     $output_string .= "<div class=\"panel-body\">\n"; 
     $output_string .= "<h4 class=\"panel-title\">\n"; 
     $output_string .= "<a>$table3[Call_Flow]</a>\n"; 
     $output_string .= "<input class=\"mycheckbox\" type=\"checkbox\" value=\"$table3[Test_ID]\" onchange=\"adds(tccb$j)\" id=\"tccb$j\"/>\n"; 
     $output_string .= "</h4>\n"; 
      $output_string .= "</div>\n"; 
     $output_string .= "<div id=\"collapseflow$j\" class=\"panel-body collapse\">\n"; 

HTML:

<div id="check"> 

    </div> 

    <script> 
    function adds(id) { 

    var value = $(id).val() 

     jQuery.ajax({ 
      url: "selection_update.php", 
      data: {"value": value}, 
      type: "POST", 
      dataType: 'json', 
       success:function(responce){ 
       $("#check").html(responce); 
      } 
     }); 
    } 
    </script> 

編輯:

這是我使用來檢查我的所有孩子checkboxs代碼。

$output_string .= "<script type=\"text/javascript\" language=\"javascript\">\n"; 
$output_string .= "function checkCheckboxes(id, pID){\n"; 
$output_string .= "$('#'+pID).find(':checkbox').each(function(){\n"; 
$output_string .= "jQuery(this).prop('checked', $('#' + id).is(':checked'));\n"; 
$output_string .= "});\n";  
$output_string .= "}\n"; 
$output_string .= "</script>\n"; 
+0

PHP的變化代碼是沒用的。顯示它輸出的HTML,因爲這是我們需要看到的。 –

+0

你在哪裏執行增加(...)? –

+0

你錯過了複選框@ edgaromar90中的'onchange'處理程序嗎? –

回答

1

這是因爲onchange僅對用戶點擊起作用,而不是簡單的值更改。爲了解決這個問題,你需要手動觸發onchange功能。

所以在你oarent的平變化的功能,請務必選擇相關的兒童和他們打電話.onchange()

這裏是一個複選框更改了另一個例子,沒有.onchange()電話:

https://jsfiddle.net/c1zwek1u/

這裏,它是:

https://jsfiddle.net/c1zwek1u/1/

注意,它應該在提醒你孩子的價值改變了。

對於多個孩子,你只需要遍歷組並調用它的每個孩子單獨像這樣:

https://jsfiddle.net/c1zwek1u/3/

在jQuery中,您可以觸發像這樣$(selector).trigger('change');

+0

好,很酷,這是沿着正確的線:)當你有多個孩子會發生什麼?我目前正在檢查我的複選框,他們在哪個分區 –

+0

我已編輯我的帖子,以顯示我目前如何檢查和取消選中我的父母複選框。 –

+0

我編輯了我的答案,以顯示如何使用循環處理多個孩子。 – Johannes

1

您需要將添加(param)作爲字符串發送。因爲你是用它來得到你需要的主題標籤此行添加到

改變DOM元素:

$output_string .= "<input class=\"mycheckbox\" type=\"checkbox\" value=\"$table3[Test_ID]\" onchange=\"adds(tccb$j)\" id=\"tccb$j\"/>\n"; 

進入這一行:

$output_string .= "<input class=\"mycheckbox\" type=\"checkbox\" value=\"$table3[Test_ID]\" onchange=\"adds('#tccb$j')\" id=\"tccb$j\"/>\n";