0

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

<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

4 回答 4

4

您正在为您发送的变量使用不同的名称:

data: { 'img_alt': $myimage.attr('alt') },

但在 php 中你使用:

$myimage        = htmlspecialchars(trim($_POST['myimage']));

将其更改为:

$myimage        = htmlspecialchars(trim($_POST['img_alt']));

另请注意,您的代码容易受到 sql 注入的影响。您应该切换到 PDO / mysqli 并使用绑定变量准备语句。

于 2012-12-03T20:49:15.120 回答
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>
于 2012-12-03T20:53:05.097 回答
1

您似乎访问了错误的 $_POST 参数

此外,您所有的图像元素都具有相同的 ID。这可能不是一个好主意。也许尝试使用类作为句柄。另外,为什么不尝试调试应用程序以获得一些更有意义的错误信息。您可以打印出来自 AJAX 帖子的响应,如下所示:

success: function(response){
    console.log(response);
}

然后在你的 PHP 中尝试 var_dump($_POST) 看看会发生什么。

于 2012-12-03T20:55:12.603 回答
0

最重要的是:每个 id 属性每页只能使用一次。不同元素不能有相同的 id 属性

于 2012-12-03T20:50:45.267 回答