好的,这就是情况,我有一个javascript弹出窗口,允许您向另一个用户发送消息。我没有使用表单,因为我希望用户能够在停留在当前页面时发送消息。所以我正在做的是将php变量回显到调用函数,然后在用户点击发送按钮时发送它(id = mbutton)
当我转到javascript函数并提醒传递的变量时,它会立即发出警告,但在通过if语句后会转到“undefined”。
正如您从下面的代码中看到的,我有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 :(得分:0)
此声明似乎不正确:
if($array['login']!=$c_log) { echo $array['login']; } ?>')"
然而,在进行比较之前,您只需比较$array['login']!=$c_log
但只有几行:$array['login']!=$c_log['login']
。
这让我相信$c_log
作为数组,并且将$array['login']
(字符串)与$c_log
(数组)进行比较将始终发生冲突。
答案 1 :(得分: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>