0

クリックした画像だけでなく、画像を1回クリックした場合、sl番号がphpページに渡されます。しかし、私は画像の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>";
}
?>

私があなたのコードで変更したことの 1 つは<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 に答える