调用该函数时,在脚本函数中运行php代码

时间:2011-08-08 06:15:19

标签: php html javascript

我有一个名为a.php的文件,它在同一页面中有一个带有脚本功能的html按钮。代码如下所示

    //a.php

    <input name="wpost" type="button" value="Publish" onClick="wall_publish()"/>

    <script type="text/javascript">
    function wall_publish(){
    //some codes here..
    //php database part  
        <?php       
            $host = 'localhost';
            $username = 'root';
            $password = '';
            $database = 'uploader';

            $con = mysql_connect($host,$username,$password);
            if (!$con){
               die('Could not connect: ' . mysql_error());
            }
            mysql_select_db($database, $con);   
                mysql_query("UPDATE  image_uploader SET Tag_Count = '$tag_count', Tag_List = '$tag_list' WHERE Image_Link = '$source'");
                mysql_close($con);
        ?>
    }
    </script>

我想在用户点击“发布”按钮时执行php数据库部分(不是在页面加载时)。
有没有办法做到这一点?
只是将这个PHP代码放在脚本函数中是行不通的。它在页面加载时执行。

4 个答案:

答案 0 :(得分:3)

如果你想从javascript调用PHP代码,简短的回答是:你不能。 PHP是服务器端代码,javascript是客户端代码。它们在不同的计算机上运行。

然而,你可以做的是使用javascript向服务器发送HTTP请求--AJAX。然后,您可以使用javascript通过HTTP请求发送的信息执行代码。

以下是来自tizag的简短ajax教程,可能会帮助您入门:

http://www.tizag.com/ajaxTutorial/

答案 1 :(得分:2)

您必须将PHP代码放入单独的文件中,并使表单操作指向该脚本。然后,当用户单击该按钮时,它将获取该文件并在服务器上执行该脚本。如果您不希望进行页面替换,而不是制作传统的帖子表单,则可以在单击按钮时运行ajax请求。这将阻止页面替换。

答案 2 :(得分:1)

首先,您应该阅读一些关于PHP和JavaScript的教程,而不仅仅是编程部分,而是理论部分。 JavaScript在客户端上执行,服务器上运行PHP。

解决方案是让JS向服务器发出AJAX请求。

答案 3 :(得分:1)

<input name="wpost" type="button"id="my_button" value="Publish" />

将此javascript放入a.php文件的head部分。

<script type="text/javascript">
$("#my_button").click(function() {
  $.post("page.php");
});
</script>

不要忘记包含jquery库文件,因为我使用jquery作为解决方案。

在page.php中你应该写:

    <?php       
        $host = 'localhost';
        $username = 'root';
        $password = '';
        $database = 'uploader';

        $con = mysql_connect($host,$username,$password);
        if (!$con){
           die('Could not connect: ' . mysql_error());
        }
        mysql_select_db($database, $con);   
            mysql_query("UPDATE  image_uploader SET Tag_Count = '$tag_count', Tag_List = '$tag_list' WHERE Image_Link = '$source'");
            mysql_close($con);
    ?>

请注意,您没有为$ tag_count,$ tag_list分配值。

在sql查询操作之后,您不希望显示任何成功或失败消息吗?