2017-04-26 62 views
0

抱歉愚蠢的问题,但我的头今天不再工作,我必须尽快完成这一点。其中把变量这个javascript

我有按钮来调用AJAX:

<button onclick="showUser(this.value)" value="' . $row2["xxx"] . '">' . $row2["xxx"] . '</button>` 

和功能:

<script> 
function showUser(str) { 
    if (str=="") { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 
    if (window.XMLHttpRequest) { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } else { 
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() { 
    if (this.readyState==4 && this.status==200) { 
     document.getElementById("maintext").innerHTML=this.responseText; 
    } 
    } 
    xmlhttp.open("GET","maintext.php?q=" +str,true); 
    xmlhttp.send(); 
} 
</script> 

到目前为止好。 如果我想用PHP中的变量使用这个函数,怎么样?或者我可以用相同的目的编写新的函数,但在哪里可以放置变量?我尝试过:

if (isset($_GET['info'])) { 
    echo '<script> function showUser(' . $_GET["info"] . ') </script>'; 
} 

...但它没有工作。

感谢您的帮助

+0

不要再定义函数,只需调用函数echo''; –

+0

谢谢,重新定义是我的错误。但是stil,在这个页面重定向之后,函数不会被调用。 –

回答

2

您正在重新定义该功能。您只需在(!)后定义它就可以调用它。

更换

if (isset($_GET['info'])) { 
    echo '<script> function showUser(' . $_GET["info"] . ') </script>'; 
} 

if (isset($_GET['info'])) { 
    echo '<script> showUser("' . $_GET["info"] . '") </script>'; 
} 

另外,你必须插入引号(" ")或JavaScript不会把输入的字符串。

+0

感谢@modsfabio,重新定义是我的错误。但是stil,在这个页面重定向之后,函数不会被调用。 –

+0

确保在定义之后调用它!你在控制台中看到任何错误吗? – modsfabio

+0

现在,它的工作原理,谢谢! –