如何通过sprintf()将PHP参数传递给javascript函数?

时间:2014-04-11 22:54:52

标签: javascript php parameters onclick printf

我被指控接管一个项目,为一个专有的软件开发一个Web工具/界面。当前的关键点是(使用已建立的实践/模式)根据用户输入的值对服务器执行连接测试。

目前,有一个使用sprintf()格式化的子菜单。我尝试了各种方法来传递参数,但是接收JavaScript函数失败了。

子菜单:

$submenu = sprintf('<div id="Menu"><ul id="ControlSubMenu">%s</ul></div>',
                '<li><a href="#inner_content" class="TestConn" id="TestConn" onClick="testpbxconnection($ct_host, $ct_port, $ct_un, $ct_pw);return false;">Test Connection</a></li>
 <li> <a href="#inner_content" class="EditConn" id="EditConn" onClick="editpbxconnection();return false;">Edit Connection</a></li>');

接收JS函数,在另一个文件中:

function testconnection(a, b, c, d)
{   alert('Test Function Hit.');
alert('Host: ' + a);
alert('Port: ' + b);
alert('User Name: ' + c);
alert('Password:' + d);
}

我是否走在正确的轨道上?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

这里有一些问题,sprintf用于字符串中的变量替换,通过传入一个以变量作为参数的字符串来做奇怪的事情。您也没有引用您的javascript变量,这会导致错误。此外,您的函数名称与testpbxconnectiontestconnection不同。您的sprintf电话应该更像:

$submenu = sprintf('<div id="Menu">
       <ul id="ControlSubMenu">
         <li>
            <a href="#inner_content" class="TestConn" id="TestConn" onClick="testconnection(\'%s\', \'%s\', \'%s\', \'%s\');return false;">Test Connection</a>
         </li>
         <li> 
            <a href="#inner_content" class="EditConn" id="EditConn" onClick="editpbxconnection();return false;">Edit Connection</a>
         </li>
       </ul>
     </div>', $ct_host, $ct_port, $ct_un, $ct_pw);

答案 1 :(得分:0)

you should pass parameter as an argument while calling a function

    $demo = "Hello";
    <input type="text" onclick="return demoFunction(<?php echo $demo; ?> );"/>
    more references
    http://www.webdeveloper.com/forum/showthread.php?147162-pass-php-variable-to-javascript-function