2012-09-04 80 views
1

因此,這是交易。我有一個我想要填充的html表格。特別是第一行是用mysql數據庫中的元素填充的行。確切地說,該表格是關於手機的調查問卷。第一行是手機名稱從數據庫加載的標題。還有一個選擇標籤,其中有公司名稱作爲選項。我需要在select標籤上觸發一個onChange事件來重新加載頁面,並使用當前在下拉列表中選擇的公司的新手機名稱重新填充第一行。這就是我的選擇幾乎是這樣的:從選擇標記觸發onChange事件時,從mysql數據庫加載html表

<select name="select" class="companies" onChange="reloadPageWithNewElements()"> 
<?php 
    $sql = "SELECT cname FROM companies;"; 
$rs = mysql_query($sql); 

while($row = mysql_fetch_array($rs)) { 
    echo "<option value=\"".$row['cname']."\">".$row['cname']."</option>\n "; 
} 
?> 
</select> 

所以...有沒有辦法來刷新與此的onChange頁面並再次通過選定值相同的頁面,並在一個新的PHP變量分配它,所以我可以做我需要填寫我的表的查詢嗎?

<?php 
//$mobileCompanies = $_GET["selectedValue"]; 
$sql = "SELECT mname FROM ".$mobileCompanies.";"; 
$rs = mysql_query($sql); 
while ($row = mysql_fetch_array($rs)) { 
    echo "<td><div class=\"q1\">".$row['mname']."</div></td>"; 
} 

?> 

這樣的事情。 (reloadPageWithNewElements()和selectedValue只是一個想法)

回答

1

保存在一個隱藏值:

<input type='hidden' value='<?php echo $row['cname'] ?>' id='someId' />

在你的JavaScript函數從該隱藏的輸入字段使用值

:在你的PHP文件現在再次

function reloadPageWithNewElements() { 
    var selectedValue = document.getElementById('someId').value; 
    // refresh page and send value as param 
    window.location.href = window.location + '?someVal='+ selectedValue; 
} 

用作檢索網址這個值:

$someVal = null; 

if (isset($_GET['someVal']) { 
      $someVal = $_GET['someVal']; 
} 

看看這是否工作!

+0

非常感謝!我試過這個解決方案並且工作。 –

0

最好的選擇是使用AJAX。

reloadPageWithNewElements()是一個函數,它調用您自己網站的頁面,該頁面將返回您希望放入表格的數據。

如果您正在使用JQuery,AJAX是很容易實現:

$.ajax({ 
    url: '/yourPage', 
    data: { selectedCompany: $('.companies').val() }, 
    success: function(result) { 
     //delete your tablerows 
     $(".classOfTable tr").remove(); 
     //put the result in your html table e.g. 
     $('.classOfTable').append(result); 
    }, 
    dataType: html 
}); 

瀏覽器將發送所有你所要做的就是讓這一個請求「/ yourPage selectedCompany =谷歌?」什麼 頁面打印出來只有HTML(也許更容易爲只打印tablerow的(<TR>)。

如果您有任何問題,請詢問。

+0

我更喜歡get方法解決方案。我明白這是最佳的,但我對AJAX毫無頭緒。 –

+0

是這樣的?: $ .get或者完全沒有jquery? – HansElsen

0

我會用jQuery來做到這一點。

首先,你需要 'id' 屬性添加到每個選項標籤

<option id="option1"> 
<option id="option2"> 

等等... 然後使用jQuery:

$('<option>').change(function() { 
    var id=$(this).attr('id'); 
...save data here (i.e: with ajax $.post(url, { selected_id: id}, callback } 
}); 
相關問題