-1

是否可以在 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

4 回答 4

1

这取决于你想用它做什么。如果您想参考 PHP 做一些 JavaScript,例如显示由存储在数据库中的用户数据指定的许多图像。这通常是通过script嵌入在 html 中的标签来完成的。

但是,如果您想用 JavaScript 做一些 PHP,那么您尝试做的事情将不起作用,而我建议您对 AJAX 调用做同样的事情。

于 2013-07-09T07:16:03.397 回答
0

干得好...

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

x是 ajax 函数

display是显示功能

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

另存为“example.php”

<?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 中显示页面。

于 2013-07-09T07:24:10.150 回答
0

PHP 是一种服务器端语言,而 javascript 是一种客户端语言。因此,当您调用此页面时,php 页面的结果将与 js 代码一起出现,即 php 代码将首先执行,而不是在 javascript 调用中。

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

这是一个教程

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

您可以通过 jQuery 参考调用 ajax

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

于 2013-07-09T07:16:45.147 回答
0

将该 php 脚本包装在 adocument.getElementByIDdocument.write方法中,根据您的页面上下文选择最适合您的情况的脚本。这是一种相当奇怪的处理方式(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>
于 2013-07-09T07:30:20.323 回答