Javascript 使用link onClick上传数据库
当我点击一个特定的链接时,我在上传数据库信息时遇到了问题 数据似乎没有发送到upload.php HTML:Javascript 使用link onClick上传数据库,javascript,php,html,ajax,pdo,Javascript,Php,Html,Ajax,Pdo,当我点击一个特定的链接时,我在上传数据库信息时遇到了问题 数据似乎没有发送到upload.php HTML: <a href="#" class="btn" onClick="$(this).hide(); myfunc('.$a.', '.$b.')" role="button"> Mylink </a> <script type="text/javascript"> function myfunc(a, b) {
<a href="#" class="btn" onClick="$(this).hide(); myfunc('.$a.', '.$b.')" role="button"> Mylink </a>
<script type="text/javascript">
function myfunc(a, b)
{
$.ajax({
url: "upload.php",
type: "POST",
data: {"a": a, "b": b},
success:function() {
alert( "Done");
}
});
}
</script>
if (isset($_POST['a']) && isset($_POST['b']))
{
$a = $_POST['a'];
$b = $_POST['b'];
$query1 = $db->prepare('UPDATE users SET a = a + 1 where uid="'.$a.'"');
$query1->execute();
$query2 = $db->prepare('UPDATE users SET b = b + 1 where uid="'.$b.'"');
$query2->execute();
if (!$query1 || !$query2)
{
echo "Erreur SQL";
exit();
}
}
1st:您的html应该是这样的
myfunc(,)”
3rd:使用bind_参数值以避免SQL注入,整数值不应用单引号括起来
$query1 = $db->prepare('UPDATE users SET a = a + 1 where uid=?');
$query1->bind_param('i',$a);
$query1->execute();
4th:在您的
upload.php
文件中,您首先准备$query2
并尝试执行$query1
我认为这是输入错误,请更正。myfunc(“.$a.”,“.$b.”中的$a和$b是什么?我传递给myfunc的两个参数。实际上它们是整数。一切都正常。例如,当我运行代码时,我喜欢myfunc(1,2),但1和2没有发送到upload.php,所以我无法让它们上载我的数据库。我试着在函数myfunc(a,b)中对其发出警报吗?放置一个console.log(a,b)
在myfunc
的顶部。是否调用了它?是否调用了upload.php脚本?在php脚本的顶部添加print\r($\u POST)
,并确保调用了它。基本调试…认为它应该是这样的myfunc(,)谢谢你的回答,但它也不起作用。正在调用myfunc,当我点击链接时,会显示“完成”。问题是数据没有发送到upload.phpif(isset($_POST['a'])和&isset($_POST['b']){----------}这部分没有执行。这就是为什么我确信数据没有发送到upload.phpDo。在upload.php echo文件中有一个解决方案@JYoThl?_get_contents('php://input“);注释该文件中的所有其他行。并将success函数更改为success:function(result){alert(result);},以了解该值是否正在发布。@DilakI解决了该问题。与数据库的连接是问题所在
function myfunc(a, b)
{
$.ajax({
url: "upload.php",
type: "POST",
data: {"a": a, "b": b},
success:function() {
alert( "Done");
},
error:function(jqXHR,error_string,error){
console.log(error);
}
});
}
$query1 = $db->prepare('UPDATE users SET a = a + 1 where uid=?');
$query1->bind_param('i',$a);
$query1->execute();