2013-01-07 24 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>