2013-01-07 27 views
0

好吧,這裏是情況,我有一個JavaScript彈出,它將允許您發送消息給其他用戶。我沒有使用表單,因爲我希望用戶能夠在留在當前頁面的同時發送消息。所以我正在做的是呼應php變量的通話功能,然後當用戶點擊發送按鈕時發送關閉(ID = mbutton)試圖通過一個PHP變量到JavaScript函數

當我轉到JavaScript函數和警報從傳出的變量中,它立即發出警告,但在通過if語句後轉到「未定義」。

正如你可以從下面的代碼看到的,我有2個警報設置......正如我所說的,第一個警報很好,但第二個警報沒有。有誰能向我解釋爲什麼會發生這種情況嗎?

<div id="msgcont"> 
    <div id="msgheader"> 
     <span>Send a Message to <? if($array['login']!=$c_log['login']) { echo 
$array['login']; } ?> - Remember to be curtious! </span> 
    </div> 
    <div id="msgclose" onMouseDown="butclick('message', 'submit')"><span>X</span></div> 
    <textarea id="msg"></textarea> 
    <div id="mbutton" onMouseUP="butclick('send', 'submit', '<? 
if($array['login']!=$c_log) { echo $array['login']; } ?>')" 
onMouseDown="butclick('send', 'down')">Send</div> 
</div> 

function butclick(but, action, sentFrom) { 
    alert(sentFrom); 
    if(but=='send') { 
     alert(sentFrom); 
     x = document.getElementById('msg').value; 
     if(x==null || x=="") { alert("Please Enter your message before attemping to 
send"); } else { } 
    } 
} 

回答

0

這裏這種說法似乎是不正確的:

if($array['login']!=$c_log) { echo $array['login']; } ?>')" 

然而,你是比較$array['login']!=$c_log,但只有幾行你在比較之前:$array['login']!=$c_log['login']

這使我相信$c_log作爲一個數組,並且比較$array['login'](一個字符串)到$c_log(一個數組)總是會發生衝突。

+0

你是對的,那是一個錯字。該行實際上是$ array ['login']!= $ c_log ['login'] – user1953855

+0

雖然這不是問題。我只是想出了它。我將onMouseDown的函數調用移動到onMouseUp上,出於某種原因解決了問題,不確定究竟是爲什麼或者如何修復它......但它確實如此。 – user1953855

+0

請回答你自己的問題,以幫助未來的用戶。 –

0

好吧,所以我不知道爲什麼會發生這種情況,但我想出瞭如何讓它工作。如果你看下面的代碼,我有onMouseUP和onMouseDown ...我將我的butclick函數調用從onMouseDown移動到onMouseUP,它似乎工作正常....不要求我解釋它...它就是。

<div id="mbutton" onMouseUP="butclick('send', 'submit', '<? if($array['login']!=$c_log) { 
echo $array['login']; } ?>')" onMouseDown="butclick('send', 'down')">Send</div>