在数据库中插入图像属性

时间:2012-12-03 20:47:34

标签: php javascript jquery html mysql

我想在单击图像时在数据库中插入一些值,但出现问题。 这是我的代码: 我编辑了我的帖子。我做了你建议的更改,但是当我点击图片时仍然没有任何反应。

<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());

?>

你能帮我一些建议吗?谢谢!

4 个答案:

答案 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属性