0

我对此代码片段有疑问,它不起作用:

.
.
.
<a href="#" id="$_GET['id1']" onclick="addToDb(<?php echo $_GET['id2'];?>)">Its a link</a>
.
.
.

addToDb()”函数:

<script>
     function addToDb(e)
     {alert(e);
         $.post("add_to_db.php",
         {
             id2:e,
             id1:this.attr("id")
         },
         function(data,status){
            alert("Data: "+data+"\nStatus: "+status);
         });
     }
 </script>

这个函数有效,因为 " alert(e)" 给出了 " " 的值id2。可能有问题id1:this.attr("id"),我试过“ alert(this.attr("id"))”,没有用。

add_to_db.php”页面是:

<?php
  $connection=mysql_connect("localhost","root","") OR die('Could not connect: '.mysql_error());
  mysql_select_db("db_user",$connection);
?>
<?php
$id2=htmlspecialchars(trim($_POST['id2']));
$id1=htmlspecialchars(trim($_POST['id1']));
?>

<?php
$duplicacy_check="select * from tbl_name where id2='$id2' && id1='$id1' LIMIT 1";
$duplicacy_check_result=mysql_query($duplicacy_check) or die(mysql_error());
    if($duplicacy_check_result)
  {
?>
      <script>
          alert("Its already added !");
      </script>


<?php
      exit();
  }
else
  {
      $query="INSERT INTO tbl_name(id2,id1) VALUES('$id2','$id1')";
      mysql_query($query) or die(mysql_error());
?>
      <script>
          alert("Added to the db");
      </script>
<?php
  }
?>

不要与“id1”、“id2”、“tbl_name”等,或者“id1”和“id2”的顺序相混淆,我知道。

请帮助我,过去两天我在这个简单的事情上遇到了麻烦。

4

2 回答 2

0

我相信错误正如你所说:this.attr("id") 示例:http: //jsfiddle.net/fAHye/

将您的功能更改为:

<script>
     function addToDb(elm, e)
     {alert(e);
         $.post("add_to_db.php",
         {
             id2:e,
             id1:elm.getAttribute("id")
         },
         function(data,status){
            alert("Data: "+data+"\nStatus: "+status);
         });
     }
 </script>

和 HTML 到

<a href="#" id="<?php echo $_GET['id1']; ?>" onclick="addToDb(this,<?php echo $_GET['id2'];?>)">Its a link</a>

笔记:<?php echo $_GET['id1']; ?>

此外,触发器位于链接中的事实可能会给您带来一些麻烦,因为页面会更改,请尝试使用另一个标签或删除默认链接http://api.jquery.com/event.preventDefault

于 2013-06-13T04:37:26.840 回答
0

请尝试以下操作:

<a href="#" id="$_GET['id1']" onclick="addToDb(<?php echo $_GET['id1'];?>, <?php echo $_GET['id2'];?>)">Its a link</a>

<script>
     function addToDb(a, e)
     {
         $.post("add_to_db.php",
         {
             id2:e,
             id1:a
         },
         function(data,status){
            alert("Data: "+data+"\nStatus: "+status);
         });
     }
 </script>
于 2013-06-13T04:25:32.610 回答