0

如果任何人单击图像而不是仅单击图像 sl 编号传递到 php 页面,我想这样做。但我没有得到任何 imge sl 号码。我试图找出问题所在。但我不能请,任何人帮助我。谢谢。这是我的代码

                <?php
$query="select * from image_content order by sl";
$result=mysql_query($query) or die (mysql_error());
$num=mysql_num_rows($result);

for ($i=0; $i<$num; $i++)
{


    $sl=mysql_result($result, $i, "sl");
    $title=mysql_result($result, $i, "title");
    $image_name=mysql_result($result, $i, "image_name");



    echo"
        <div id='image_style'>

    <div id='upload_image'>
        <a class='picture_description' href='#' title='$title'>
        <img src='../download/$image_name' />
     <div align='center'>Title: $title</div>
    </a>
   </div>
<input type='hidden' class='picture_sl' name='picture_sl' value='$sl'/>
</div>";
}
?>

jQuery代码:

<script type="text/javascript">
$(document).ready(function() {

    $(".picture_description").click(function() {

        var action = $("#form1").attr('action');
        var form_data = {
            picture_sl: $(".picture_sl").val(),
            is_ajax: 1
        };

        $.ajax({
            type: "POST",
            url: action,
            data: form_data,
            success: function(response)
            {

                        $("#div_1").html(response);

                }
        });

        return false;
    });

});
</script>

加载的php:

<?php

echo $picture_sl=$_POST['picture_sl'];
?>
4

2 回答 2

0

您似乎没有为图像和描述 HTML 编制索引,这意味着它们都将具有以下输出<input type='hidden' class='picture_sl' name='picture_sl' value='X'/>。您希望它们看起来像什么<input type='hidden' class='picture_sX' name='picture_sX' value='X'/>。为此,只需将您的代码更新为以下内容

<?php
$query="select * from image_content order by sl";
$result=mysql_query($query) or die (mysql_error());
$num=mysql_num_rows($result);

for ($i=0; $i<$num; $i++) {

  $sl=mysql_result($result, $i, "sl");
  $title=mysql_result($result, $i, "title");
  $image_name=mysql_result($result, $i, "image_name");

  echo"
  <div class='image_style'>
    <div class='upload_image'>
      <a class='picture_description' href='#' title='$title'>
        <img src='../download/$image_name' />
        <div align='center'>Title: $title</div>
      </a>
    </div>
    <input type='hidden' class='picture_s".$i."' name='picture_s".$i."' value='".$sl."'/>
  </div>";
}
?>

我在您的代码中所做的一件事是<div id='image_style'>并且<div id='upload_image'>仅仅是因为您不应该在 html 页面中有多个相同的 ID。

这是JavaScript

$(document).ready(function () {
  $(".test").click(function () {
    $(event.target).children('div').each(function(){
      var action = $("#form1").attr('action');
      var form_data = {
        picture_sl: $(this).attr('value'),
        is_ajax: 1
      });

      $.ajax({
        type: "POST",
        url: action,
        data: form_data,
        success: function(response) {
          $("#div_1").html(response);
        }
      });
      return false;
    });
  });
});
于 2013-01-30T00:04:25.343 回答
0

在您的点击处理程序中,您正在选择任何具有“picture_sl”类的输入元素,而不是被点击的那个。

您可以像这样在锚标记上使用数据属性

<a class='picture_description' href='#' title='$title' data-picture='$sl'>

然后使用 jQuery data() 方法检索它:

   $(".picture_description").click(function() {

    var action = $("#form1").attr('action');
    var form_data = {
        picture_sl: $(this).data('picture'),
        is_ajax: 1
    });
于 2013-01-30T00:11:24.473 回答