是否可以在javascript函数中包含php代码?

时间:2013-07-09 07:08:45

标签: php javascript

是否有可能在javascript函数中包含php代码?我有一个调用此函数的按钮,但它似乎无法正常工作。表格没有显示,没有任何反应

<script>
    function selectFunction()
    {
    <?php
        $con = mysqli_connect("localhost","root","","study");

        if (mysqli_connect_errno($con))
            {
                echo "Failed to connect to mysql" . mysqli_connect_error();
            }

            $result = mysqli_query($con,"SELECT * FROM sample_employers");

            while($row=mysqli_fetch_array($result))
            {
                echo "<tr>";
                echo "<td>" . $row['firstname'] . "</td>";
                echo "<td>" . $row['lastname'] . "</td>";
                echo "<td>" . $row['middlename'] . "</td>";
                echo "<td> <input type='button' value='Delete' </td>"; 
                echo "</tr>";
            }

            mysqli_close($con);
    ?>
    }   
</script>

4 个答案:

答案 0 :(得分:1)

这取决于你尝试用它做什么。如果你想参考PHP做一些JavaScript,比如显示存储在数据库中的用户数据所指定的一些图像。这通常使用嵌入在html中的script标记来完成。

但是,如果你想用JavaScript做一些PHP,那么你试图做的东西将无法工作,而我建议你对AJAX调用做同样的事情。

答案 1 :(得分:0)

PHP是服务器端语言,javascript是客户端语言。因此,当你打电话给这个页面时,php页面的结果将带有js代码的alanog,即php代码将首先被执行而不是javascript调用。

你可以选择一种解决方案进行ajax调用。拨打服务器端页面,然后执行您的功能。

这是一个教程

http://www.w3schools.com/ajax/default.asp

您可以通过jQuery参考

调用ajax

http://www.w3schools.com/jquery/ajax_post.asp

答案 2 :(得分:0)

你去......

我快速编码...所以也许你需要检查更多的支持,无论如何应该适用于大多数现代浏览器。

x 是ajax函数

显示是显示功能

当页面加载时,它会搜索第一个按钮并添加一个执行ajax函数的单击侦听器,该函数调用异步显示函数。

另存为&#39; example.php&#39;

<?php
if($_GET['ajax']){
 $con = mysqli_connect("localhost","root","","study");
 if (mysqli_connect_errno($con)){ echo "Failed to connect to mysql" . mysqli_connect_error(); }
 $result = mysqli_query($con,"SELECT * FROM sample_employers");
 while($row=mysqli_fetch_array($result)){
  echo "<tr>";
  echo "<td>" . $row['firstname'] . "</td>";
  echo "<td>" . $row['lastname'] . "</td>";
  echo "<td>" . $row['middlename'] . "</td>";
  echo "<td> <input type='button' value='Delete' </td>"; 
  echo "</tr>";
 }
 mysqli_close($con);
}else{
?><!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var x=function(a,b,c){c=new XMLHttpRequest;c.open('GET',a);c.onload=b;c.send()},
display=function(){
  document.body.appendChild(document.createElement('table')).innerHTML=this.response;
}
window.onload=function(){
 document.getElementsByTagName('button')[0].onclick=function(){
  x('example.php?ajax=true',display)
 }
}
</script>
</head>

<body>
<button>Load the table</button>
</body>
</html><?php
}
?>

更好的方法是使用包含表对象的php生成json文件。 那么你有更多的选择来在javascript中显示页面。

答案 3 :(得分:0)

document.getElementByIDdocument.write方法包装该php脚本,根据您的页面上下文选择最适合您情况的脚本。这是一种相当奇怪的解决方法(AJAX更好),但这应该适合你:

 <script>
 function selectFunction()
 {
      document.write('<?php
           error_reporting(0);
           $con = mysqli_connect("localhost","root","","study");

           if (mysqli_connect_errno($con))
                {
                     $html= "Failed to connect to mysql" . mysqli_connect_error();
                }
           $result = mysqli_query($con,"SELECT * FROM sample_employers");
           while($row=mysqli_fetch_array($result))
                {
                     $html= "<tr>";
                     $html.= "<td>" . $row['firstname'] . "</td>";
                     $html.= "<td>" . $row['lastname'] . "</td>";
                     $html.= "<td>" . $row['middlename'] . "</td>";
                     $html.= "<td> <input type='button' value='Delete' </td>"; 
                     $html.= "</tr>";

                }
           mysqli_close($con);
           $html = addslashes($html);
           echo $html;
      ?>');
 }
 </script>
 <!-- page contents here //-->
 <script>
      selectFunction();
 </script>