如何在JavaScript中使用PHP代码

时间:2011-07-10 11:21:40

标签: php javascript

我想在JavaScript中使用PHP代码,但它不起作用:

        <script type="text/javascript">
           function edit(pollNo)
           {
               <?php
                   $result = mysql_query( 'CALL ret_poll('.pollNo.')' );
                   $row = mysql_fetch_assoc($result);
                   echo 'document.poll.pollTitle.value='.$row['title'];
               ?>
           }
        </script>

6 个答案:

答案 0 :(得分:4)

您可以使用jQuery对执行PHP代码的PHP页面执行AJAX请求,并传递JavaScript函数中的参数。 查看jQuery网站,了解有关此主题的更多信息: http://api.jquery.com/category/ajax/

代码中的一个大问题是JavaScript在客户端运行而PHP在服务器端运行。这就是为什么不可能将这两者混合起来的原因。

我是为你写的,但我没有测试过。我很确定它会让你知道如何实现这个:

<强> getpollinfo.php

<?php
if ( IsSet( $_GET['poll'] ) ) {

  /* Connect to MySQL here */

  $result = mysql_query( 'CALL ret_poll(' . intval( $_GET['poll'] ) . ')' );
  $row = mysql_fetch_assoc($result);

  echo json_encode($row);
}
?>

JavaScript代码(假设您已加载jQuery框架)

function edit(pollNo)
{
  $.get('getpollinfo.php', { 'poll' : pollNo }, function(data) {
     $('#pollTitle').html(data.title);
  });
}

答案 1 :(得分:2)

Javed,它不是你不能在javascript中使用php。然而,用途非常有限。

查看示例

alert('<?php echo "hi"; ?>');

服务器渲染后,脚本将

`alert('hi');` //SO it will alert `hi` now

大多数情况下,你可以使用PHP和javascript混合创建一个你想在运行时运行的脚本

例如

<script>
   <?php
   $location = $_SESSION['logged'] ? 'admin.php' : 'index.php';
   ?>
   window.location('<?php echo $location; ?>');
</script>

或类似的东西

<script>
    <?PHP if($test==true) { ?>
        function test() {
            //do something;
        }
    <?php } else { ?>
        function test() {
            //do something else but not the previous one
        }
    <?php } ?>
</script>

然而,你正在尝试的是尝试使用PHP代码作为JAVASCRIPT 这是不可能的!!!!!!!!

相反,您可以像其他答案建议的那样使用AJAX来解决此问题。

您的可能解决方案的一个小演示

文件:myMYSQLPROCESSING.php

        // Your connections and other above                
        $result = mysql_query( 'CALL ret_poll('.$_POST['pollno'].')' );
        $row = mysql_fetch_assoc($result);
        echo $row['title'];

JS

    function edit(pollNo)
    {
        $.post("myMYSQLPROCESSING.php",
            { "pollno" : pollNo },
            function(data) {
                // Now data, will contain whatever you echo in myMYSQLPROCESSING.php
                // May be a success message or error message

                // and do whatever you want with the response

               document.poll.pollTitle.value=data; //in your case something like this
            }
        );
    }

这是一个jQuery代码,如果您不熟悉它。

答案 2 :(得分:2)

Javascript =客户端。

Php =服务器端。

你不能按照你使用的方式组合它们,你需要使用ajax来做你想做的事。

序列将是:

  • javascript:您的编辑功能
  • javascript:ajax请求php脚本
  • php:执行查询并返回结果
  • javascript:处理回复

答案 3 :(得分:2)

首先,您必须了解PHP在服务器端运行,而JavaScript在客户端运行。因此,只要将它放在那里就不能直接在JavaScript函数中调用PHP代码。

当客户端发出请求时,PHP解释器会执行代码并生成一些输出。此输出发送到浏览器,然后执行JavaScript代码。 PHP的工作已经完成了。


您可以使用Ajax实现所需目标(尽管我认为您必须首先了解有关JavaScriptPHPHTTP的更多信息。)

但是给你一个例子(使用jQuery库):

function edit(pollNo){
    $.get('get_poll.php',{id: pollNo}, function(data) {
        $('input[name="pollTitle"]').val(data);
    });
}

您的PHP文件的位置如下:

// db connection...
$result = mysql_query( 'CALL ret_poll('.mysql_real_escape_string($_GET['id'].')' );
$row = mysql_fetch_assoc($result);
echo $row['title'];

答案 4 :(得分:1)

你做不到。你将永远无法做到。它会破坏安全墙上的一个很大的漏洞。 顺便说一句,您可以使用AJAX技术并通过Javascript调用PHP文件。

参考文献:

答案 5 :(得分:1)

如果你需要按照你的意思行事,你最终只会使用特定的Javascript代码版本呈现页面。

如果你真的想这样做,你必须查看输出,看看你需要在Javascript中引用字符串。

    <script type="text/javascript">
    function edit(pollNo)
    {
        <?php
            $result = mysql_query( 'CALL ret_poll('.pollNo.')' );
            $row = mysql_fetch_assoc($result);
            echo 'document.poll.pollTitle.value="'.$row['title'].'"';
        ?>

    }
    </script>

您的浏览器最终会:

    <script type="text/javascript">
    function edit(pollNo)
    {
        document.poll.pollTitle.value="somehardcodedtext";

    }
    </script>

您必须考虑在$row['title']的输出中转义引号符号,以及是否只想使用AJAX调用服务器。