我想在单击图像时在数据库中插入一些值,但出现问题。 这是我的代码: 我编辑了我的帖子。我做了你建议的更改,但是当我点击图片时仍然没有任何反应。
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="jquery.js"></script>
<style type="text/css">
body{background-color:black; background-repeat:no-repeat; position:absolute;width:100%;}
img.imgnavbar{height:auto; width:15%; opacity: 1.0; padding:2%; z-index:100;}
.menu{padding-top:3%;width:100%;}
img.shadow{height:100%; width:100%; bottom:0px; position:fixed; left:0%; z-index:-2;}
</style>
<script>
$(".imgnavbar").click(function() {
var $myimage=$(this);
$.ajax({
type: 'POST',
url: 'submit_form.php',
data: { 'img_alt': $myimage.attr('alt') },
success: function(){
console.log("OK!");
}
});
});
</script>
</head>
<body>
<div align="center" class="menu">
<img src='images/green.png' id="green" alt="green" class="imgnavbar"/>
<img src='images/blue.png' id="blue" alt="blue" class="imgnavbar"/>
<img src='images/orange.png' id="orange" alt="orange" class="imgnavbar"/>
<img src='images/red.png' id="red" alt="red" class="imgnavbar"/>
</div>
<img src='images/shadow.png' id="shadow" class="shadow"/>
</body>
</html>
和php:
<?php
include ("db.php");
$myimage = htmlspecialchars(trim($_POST['img_alt']));
$addCompany = "INSERT INTO company (id,name) VALUES ('','$myimage')";
mysql_query($addCompany) or die(mysql_error());
?>
你能帮我一些建议吗?谢谢!
答案 0 :(得分:4)
您在变量中使用了不同的名称:
data: { 'img_alt': $myimage.attr('alt') },
但在php中你使用:
$myimage = htmlspecialchars(trim($_POST['myimage']));
将其更改为:
$myimage = htmlspecialchars(trim($_POST['img_alt']));
另请注意,您的代码容易受到sql注入攻击。您应该切换到PDO / mysqli和带有绑定变量的预处理语句。
答案 1 :(得分:3)
你应该使用class属性,你不能使用id attr两次。
<script>
**$(".imgnavbar")**.click(function() {
var $myimage=$(this);
$.ajax({
type: 'POST',
url: 'submit_form.php',
data: { 'img_alt': $myimage.attr('alt') },
success: function(){
console.log("OK!");
}
});
});
</script>
答案 2 :(得分:1)
您似乎正在访问错误的$ _POST参数
此外,您的所有图片元素都具有相同的ID。这可能不是一个好主意。也许尝试使用类作为句柄。此外,为什么不尝试调试应用程序以获得更有意义的错误信息。你可以打印出来自AJAX帖子的响应:
success: function(response){
console.log(response);
}
然后在PHP中尝试var_dump($ _ POST)以查看即将发生的事情。
答案 3 :(得分:0)
最重要的是:每个id属性每页只能使用一次。对于不同的元素,您不能具有相同的id属性