我有一个名为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代码放在脚本函数中是行不通的。它在页面加载时执行。
答案 0 :(得分:3)
如果你想从javascript调用PHP代码,简短的回答是:你不能。 PHP是服务器端代码,javascript是客户端代码。它们在不同的计算机上运行。
然而,你可以做的是使用javascript向服务器发送HTTP请求--AJAX。然后,您可以使用javascript通过HTTP请求发送的信息执行代码。
以下是来自tizag的简短ajax教程,可能会帮助您入门:
答案 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查询操作之后,您不希望显示任何成功或失败消息吗?