我需要有关添加到数据库的帮助。 我想通过按钮单击方法调用javascript scrt。 Javascript脚本,我想调用一个php文件,其中包含一些添加到MySQL数据库的代码。
我确实尝试了20多个网站,没有帮助。
如果AJAX会更好你能帮助我吗?
按钮代码:
<input type="button" value="favorites1" onClick="favfunct();">
Javascript代码
function favfunct() {
var target = document.createElement( "script" );
target.setAttribute( "src", "php/addtofavorites.php" );
document.getElementsByTagName( "body" )[0].appendChild( target );`
}
Php代码
<?php
echo "test successful"
$con = mysql_connect("localhost","root","student");
if ($_POST["get"] == 'runfunction')
echo "Works";
}
if ($_POST["action"] == 'favorites1'){
echo "Testing Was Successful"
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("tvid", $con);
$sql="INSERT INTO Persons (userid, davorites) VALUES
('1','$_POST[video0]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Your Video was Added To Your Favorites";
mysql_close($con)
}
?>
答案 0 :(得分:2)
因此,这种“工作方式”与锤击螺钉的方式相同。它会进入那里,但不是你想做的事情。
不要使用脚本标记来触发php页面。您的页面将触发,但这是完成工作的错误工具。你想使用AJAX。 AJAX专门用于此目的,而脚本标记用于在页面上运行脚本。它将尝试获取addtofavorites.php
的内容,但它会期望JavaScript作为返回。而且您将无法使用$_POST
,因为您无法将数据发布到请求中。
相反,请使用AJAX。如果您已经在使用JavaScript库,那么它将为您提供一个很好的AJAX包装器(我不知道我头顶的单个库没有)。您可以查看给定库的API文档,以获取有关如何使用AJAX功能的文档(jQuery,Prototype.js,Mootools等。)。
作为一个例子,我将使用jQuery,因为它是最流行的之一。这是一个使用jQuery到页面的请求(看起来是期望的变量)
// Call an AJAX function to the proper page
$.ajax("php/addtofavorites.php", {
// Pass our data to the server
data: { "get" : "runfunction", "action" : "favorites1" },
// Pass using the appropriate method
method: "POST",
// When the request is completed and successful, run this code.
success: function (response) {
// Successfully added to favorites. JS code goes here for this condition.
}
});
另外,作为旁注,PHP中的每一行都需要一个分号;
。你们很多人都没有。并且第3行缺少一个左括号{
,但我不确定这是否只是你的复制粘贴的工件。
我建议使用jQuery来监听事件。 jQuery的events API将允许您监听对象上的事件。所以,像这样:
<input id="button_1" type="button" value="favorites1" />
和jQuery
$(document).ready(function () { // Make sure the elements are loaded on the page
// Listen for a click event on the button
$('#button_1').click(favfunct);
});
// Now define the function
function favfunct(e) {
// Stop the page from "following" the button (ie. submitting the form)
e.preventDefault();
e.stopPropagation();
// Insert AJAX call here...
}
答案 1 :(得分:0)
我推荐jQuery,
这就是你需要的: http://api.jquery.com/jQuery.get/
function add(title,text) {
$(function() {
$.get("add_to_db.php?title="+title+"&text="+text);
});
}
你可以用更先进的方式来做 http://api.jquery.com/jQuery.post/