2013-02-12 44 views
0

我試圖鏈接兩個選擇下拉與onclick事件,但很少成功。這是我迄今爲止設法實現的目標。鏈接選擇與jQuery中的頁面加載/ onclick事件

這是我到目前爲止的代碼:

form.php的

$("#dept").click(function() { 
    var dept = $("#dept").val(); 
    var dataString = 'dept=' + dept 
    $.ajax({ 
     type: "POST", 
     url: "process.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('select.moduleCode').html(); 
     } 
    }); 
}); 

Department  
<select name="dept" id="dept"> 
<option value="<?php echo $loggedin_id; ?>"> 
<?php echo $_SESSION[$thename]; ?></option> 
<option>---------------------------------</option> 
<?php 
$sql = "SELECT * FROM ts_dept WHERE id<>:id"; 
$stm = $pdo->prepare($sql); 
$stm->execute(array(':id' => $loggedin_id)); 
$rows = $stm->fetchAll(); 
foreach ($rows as $row) 
{ 
    echo '<option value="'.$row['id'].'"> 
    '.$row['dept'].' 
    </option>'; 
}; 
?> 
</select> 

<p> 

Module Code 
<select name="moduleCode" id="moduleCode"> 
<option>---------------------------------</option> 
</select> 

process.php

<?php 
require_once("../resources/php/connection.php"); 

$dept_id = $_POST["dept"]; 

$sql = "SELECT id FROM ts_module WHERE id=:id"; 
$stm = $pdo->prepare($sql); 
$stm->execute(array(':id' => $dept_id)); 
$rows = $stm->fetchAll(); 
foreach ($rows as $row) 
{ 
    echo '<option>'.$row['id'].'</option>'; 
} 
?> 

我試圖填補選項的的模塊代碼根據部門下拉列表中的選擇值進行下拉(此事件應在頁面加載時啓動。但是,儘管用戶在部門下拉列表中選擇了一個,但模塊代碼下拉列表中沒有任何內容被刷新。我需要對我的代碼進行哪些更改以排除此問題?

+2

除非AJAX的預期目的是清除它,否則你對'$('select.moduleCode')。html();'的返回沒有任何作用。 'success:function(html){'給你一個'html'的局部變量,你應該使用^^ – Jon 2013-02-12 01:28:17

+0

Hi @Jon做些什麼,謝謝你的回覆。我不確定如何使用process.php中的所有選項填充選擇moduleCode下拉菜單。你會推薦什麼? – methuselah 2013-02-12 01:29:36

+1

'$('select.moduleCode')。html(html);'^^ – Jon 2013-02-12 01:33:46

回答

2

你的Ajax調用沒有做與你的php的響應任何東西,嘗試:

$.ajax({ 
    type: "POST", 
    url: "process.php", 
    data: dataString, 
    cache: false, 
    success: function (html) { 
     $('#moduleCode').html(html); 
    } 
}); 

我也會改變$("#dept").click($("#dept").change(所以它會爲用戶的工作沒有鼠標,所以它只能負載新數據發生變化時,不僅僅是點擊時。

+0

謝謝你的回答約翰。我認爲現在的問題在於process.php - 選擇字段的值似乎沒有顯示,我不知道如何修復他 - 我不能「下拉」菜單 – methuselah 2013-02-12 01:41:45

+0

您的PHP,從外觀它只會有1個結果,並且只有在提交的'id'存在於數據庫中,然後輸出'id'作爲選項?當你直接提交給PHP頁面(所以你可以看到給出的輸出),它是預期的輸出嗎? – Jon 2013-02-12 01:45:35

+0

@methuselah你也想確保你的js在頁面的開頭有'$(document).ready(function(){'before和'});'在它後面,以便DOM完全加載。 (到現在爲止,我假設你已經擁有它) – Jon 2013-02-12 01:51:13

相關問題