2013-04-16 50 views
0

這是將自身連接到MySQL數據庫的PHP代碼。交易是,它顯示存儲在數據庫中的名稱列表。我需要做的是,點擊時,名稱應顯示自己的聊天框(與Facebook中相同)。顯示「未捕獲參考錯誤」的Javascript函數

這裏的問題在於標有箭頭的行。當點擊特定名稱時,應該調用功能display_chat_box,但不是。它運行良好,直到我沒有在其中添加studentid參數。我懷疑功能chat_box_number()作爲參數發送,但它確實沒有幫助我。它工作得很好,那爲什麼不現在呢?我在Google Chrome中打開了開發者工具來檢查錯誤,並且它顯示

** Uncaught ReferenceError:display_chat_box()未定義**。

我不明白爲什麼?其他人可以嗎?無論存在什麼問題,任何人都可以發佈一個工作解決方案,以便我可以將聊天框帶回生活。

<?php 
$con = mysql_connect("localhost", "****", "******"); 
mysql_select_db("my_db", $con); 
$result = mysql_query("SELECT * FROM online_students"); 
while ($row = mysql_fetch_array($result)) { 
    $result2 = mysql_query("SELECT * FROM students WHERE email='$row[email]'"); 
    $row2 = mysql_fetch_array($result2); 
    $name = $row2['firstname'] . " " . $row2['lastname']; 
    $studentid = $row2['studentid']; 
    echo "<li onclick='display_chat_box(chat_box_number(),\"" . $name . "\"," . $studentid . ")'>" . $name . "</li>"; 
} 
mysql_close($con); 
?> 

<script src="jquery-1.9.1.min.js" type="text/javascript"> 
    var n = 0, chat_wid; 
    function chat_box_number() { 
     if (n == 2) 
      n = 0; 
     n++; 
     return n; 
    } 

    function display_chat_box(j, name, studentid) { 
     alert("hi"); 
     switch (j) { 
      case 1: { 

       document.getElementsByClassName("chat_box1")[0].style.display = "block"; 
       document.getElementById("chat_with1").innerHTML = name; 
       break; 
      } 
      case 2: { 
       document.getElementsByClassName("chat_box2")[0].style.display = "block"; 
       document.getElementById("chat_with2").innerHTML = name; 
       break; 
      } 
      case 3: { 
       document.getElementsByClassName("chat_box3")[0].style.display = "block"; 
       document.getElementById("chat_with3").innerHTML = name; 
       break; 
      } 
     } 
     chat_wid = studentid; 
     update_chat(); 
    } 
</script> 
+1

我覺得你需要另一個'

1

的未定義引用的問題是,因爲你以後

<script src="jquery-1.9.1.min.js" type="text/javascript">. 

提示它錯過了

<script> 

標籤的地方:爲什麼您使用jQuery lib如果您選擇用自己的方法元素。 我給你舉個簡單的例子

代替

document.getElementsByClassName("chat_box1")[0].style.display="block"; 

使用

$(".class")[n].css("display","block"); 

代替

document.getElementById("chat_with3").innerHTML=name; 

使用

$("#id").html(name); 
+0

其實事情是,我學習了JavaScript,但沒有經過任何圖書館。我稍後纔開始使用Jquery,從而導致了所有代碼的混淆。我正在將所有Javascript正常代碼更改爲Jquery。還是要謝謝你的幫助! :) – kamal0808