$_GET从生成的列表是未定义的显示页面


$_GET from generated list is undefined on display page

我从mysql数据库中生成了一些元素,这些元素正确显示,并且还附加了它们的主要id。

我想当其中一个元素被选中onClick(使用'a'), jquery被发送到数据库,以召回更多的信息在这个选定的元素,并显示在这个主页上。

问题是所选择的主id没有通过我的fetch页面,在这里,来自数据库调用的进一步信息被格式化并返回到显示页面。

我认为错误在这里:

<script type="text/javascript">
    $(document).ready(function() {
       $('a').click(function() {    
        var id = $(this).val('myval'); 
        $.ajax({    //create an ajax request to foliobase.php
        type: "GET",
        //link to the foliobase.php file "?subj" here is the connector///
        url: "foliobase.php?subj="+id,          
       dataType: "html",              
       success: function(response){                    
      $("#fillFolio").html(response); 
     }
  });
});
});
</script>

,特别是这部分因为当我把folio_id数字直接放在?subj=而不是+id后面时,一切都很好:

var id = $(this).val('myval'); 

这是生成的元素表:

<?php
$query = mysqli_query($connection, "select * from portfolio");
  print "<ul>";
  while($row = mysqli_fetch_assoc($query)){
  print  "<li><a href='"javascript:return(0)'" myval=".$row['folio_id'].">  <div class=thumbnails><img src={$row['image']}></a></td></li>";
}
print "</ul>";
?>

下面是fetch页面,其中包含mysql查询和要返回到显示页面的信息布局:

$folio = mysqli_real_escape_string($connection, $_GET['subj']);
//I'm getting exists here!!!!!!!
if(!empty($_GET)){
echo "exists";
}
else{
echo "do not exist";
}
?>
<?php
$query = mysqli_query($connection, "select * from portfolio WHERE folio_id='$folio'");

我仍然在掌握Javascript, jquery, ajax等,并且在我想到向stackoverflow寻求帮助之前已经在这方面工作了几天,所以提前感谢。

使用attr():

var id = $(this).attr('myval'); 

或者您可以使用data-*属性:

print  "<li><a href='"javascript:return(0)'" data-myval=".$row['folio_id']."...</td></li>";

,然后你可以使用:

$('a').click(function() {    
    var id = $(this).data('myval');
});

myval不是一个有效的HTML属性。

你的php应该输出如下内容:

<?php
    $query = mysqli_query($connection, "select * from portfolio");
    print "<ul>";
    while($row = mysqli_fetch_assoc($query)){
        print  "<li><a href='"javascript:return(0)'" data-myval=".$row['folio_id'].">  <div class=thumbnails><img src={$row['image']}></a></td></li>";
    }
    print "</ul>";
?>
你的jQuery代码应该像这样:
var id = $(this).data('myval');