2013-06-06 26 views
0

我的代碼有一個文本輸入和提交按鈕,它在返回時隱藏窗體並顯示一個新按鈕,該按鈕可以工作。我遇到的問題是將按鈕(或innerHTML)的值設置爲查詢中的答案(它總是隻有一個)。我有以下代碼:設置一個按鈕的值等於一個SQL查詢的答案

echo '<form><button id="HCP_Btn" name="HCP_Btn" style="display:none"></button></form>'; 

    $HCP_num = $_POST['HCP_num']; 
    $HCP_Query="SELECT * FROM HomeCareProviders WHERE Number='". $HCP_num."'"; 


    $HCP_result= mysql_query($HCP_Query) or die(mysql_error()); 

    if (mysql_num_rows($HCP_result)==0){ 
     echo 'Sorry there are no Home Care Providers with the number entered.'; 
    } 
    //HCP_Btn.innerHTML='.$row["name"].'; 
    else { 
     $row = mysql_fetch_array($HCP_result); 
     echo '<script type="text/javascript"> 
       HCP_Btn.style.display=""; 
       document.form.HCP_Btn.innerHTML='.$row["name"].';  
       </script>';       
    } 
+1

問題可能是因爲您的按鈕的ID是** HCP_Btn **,但在JS中進一步您正在訪問它像** HCP_btn ** - 問題可能很小** b **。 – shadyyx

+0

@ shadyyx謝謝你。然而,它仍然沒有工作! – user2363025

+0

檢查我的答案,我做了一個編輯。 – shadyyx

回答

0

這個問題可能是因爲你的按鈕的id是HCP_Btn但在JS進一步您正在訪問它像HCP_btn - 這個問題可能是小b。此外,您缺少innerHTML值的引號。

變化

document.form.HCP_btn.innerHTML='.$row["name"].'; 

document.form.HCP_Btn.innerHTML="'.$row["name"].'"; 
       ^   ^   ^
    make the b uppercase add quotes ----------^ 

編輯該行:你有沒有試過jQuery的?人們普遍和廣泛使用的JavaScript框架,使JS編程容易得多(後你知道)...使用jQuery,你可能只是做:

echo '<script type="text/javascript"> 
$("#HCP_Btn").css({"display":""}).html("'.$row['name'].'"); 
</script>'; 
+0

從未嘗試過。我知道我應該儘快! – user2363025

0

對於第一個變化是這樣的

echo '<script type="text/javascript"> 
       //HCP_Btn.style.display=""; 
       document.form.HCP_btn.innerHTML=\''.$row["name"].'\';  
       </script>'; 

第二次檢查如果$ row [「name」]給你正確的值,並在最後檢查你的JavaScript控制檯的錯誤。

另外HCP_Btn.style.display =「」;沒有這個意思。

+0

@ Alessandro Gabrielli無論如何,查詢都能給出正確的結果。添加的斜線並沒有改變任何東西 – user2363025

+1

是的,也評論之前的行或改變它document.getElementById('HCP_btn') –

+0

@ Alessandro Gabrielli該按鈕設置爲style = display:none來隱藏它。然後,點擊另一個按鈕後,我將它更改爲可見,並顯示爲HCP_Btn.style.display =「」; – user2363025

1

您可以使用該Javascript代碼

echo '<script type="text/javascript"> document.getElementById("HCP_Btn").style.display=""; document.getElementById("HCP_Btn").innerHTML="'.$row["name"].'";
</script>';

0

如何返回到自身的innerHTML從JavaScript調用的信息?什麼時候被調用並更改?我想你應該先做。

你有一個用戶按下一個按鈕。然後你使用PHP轉到數據庫(需要一個新的請求響應),使用AJAX或JavaScript,你可以使它工作在客戶端。

我認爲你正在混淆服務器端和客戶端問題。您至少需要在onClick事件上調用函數來切換按鈕的顯示並顯示信息。那個onClick事件應該調用一個JavaScript函數,並且會處理這個變化。

+0

@ Loek Bergman他們是兩個不同的按鈕。當顯示一個時隱藏另一個。我得到了它的工作。唯一的問題是沒有使用document.getElementById :)當另一個(不同的按鈕)被點擊時它被調用 – user2363025

+0

很高興聽到你解決它。這是最重要的。感謝澄清過程。我讀得不夠好。是否正確,你不需要使用JavaScript?我看到的是沒有函數調用的靜態JavaScript。 PHP實際上正在完成這項工作。使用PHP將JavaScript直接添加到按鈕可能會簡化您的代碼。總是很好的維護。 –

相關問題