2

誰かが私を助けてくれるのではないかと思います。

以下のコードは、ユーザーがギャラリーから画像を削除できるようにします。

フル スクリプト マイナス スタイリング

 <?php session_start(); 

$_SESSION['userid']=$_POST['userid'];
$_SESSION['locationid']=$_POST['locationid'];

//echo $_SESSION['userid']; 
//echo $_SESSION['locationid'];
?>
<?php 

  $galleryPath = 'UploadedFiles/' . $_SESSION['userid'] . '/' . $_SESSION['locationid'] . '/';

  $absGalleryPath = realpath($galleryPath) . DIRECTORY_SEPARATOR; 

  $descriptions = new DOMDocument('1.0'); 
  $descriptions->load($absGalleryPath . 'files.xml'); 
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=0.3">
        <title>Galleria Twelve Theme</title>
        <style>


        <script src="js/jquery-1.7.2.min.js"></script>
        <script src="js/jquery-ui-1.8.19.custom.min.js"></script>
        <script src="galleria/galleria-1.2.7.min.js"></script>
        <script src="galleria/themes/twelve/galleria.twelve.min.js"></script>
        <script src="galleria/plugins/history/galleria.history.min.js"></script>
        <link rel="stylesheet" href="galleria/themes/twelve/galleria.twelve.css">
         <style>

         .galleria-thumbnails .btn-delete {    
         display: block; /* Or just use a div instead of a span*/     
          position: absolute; bottom : 0px;  /*align at the bottom*/     
          width: 80px;     
          height: 17px;    
          cursor: pointer;     
          background: url(trash8.gif) no-repeat bottom; } 
         </style>

<script type="text/javascript"> 
Galleria.ready(function() { 
this.$('thumblink').click(); 

$(".galleria-image").append( 
"<span class='btn-delete ui-icon ui-icon-trash'></span>"); 

$(".btn-delete").live("click", function(){ 

// you do not need to find img and then src... just use id of image 
var img = $(this).closest(".galleria-image").find("img"); 

var userid=$(".hiddenvals").attr('userid'); 
var locationid=$(".hiddenvals").attr('locationid'); 

// send the AJAX request 
$.ajax({ 
url : 'delete3.php?userid='+userid+'&locationid='+locationid, 
type : 'post', 
data : { image : img.attr('src') }, 
success : function(){ 
alert('Deleting image... '); 
img.parent().fadeOut('slow'); 
} 
}); 

return false; 
}); 

}); 

</script> 



    </head>

<body>
<ul id="navigation">
<li class="left">
  <div align="center"><a href="javascript:document.viewimages.submit()" class="style2">&larr; Add Images</a></div>
</li>
</ul>
<form id="viewimages" name="viewimages" class="page" action="index.php" method="post"> <input name="userid" class="hiddenvals" type="hidden" value="<?php echo $_SESSION['userid']; ?>"> <input name="locationid" class="hiddenvals" type="hidden" value="<?php echo $_SESSION['locationid']; ?>"></form>
    <div class="content">
        <h1>Galleria Twelve Theme</h1>
        <p>Demonstrating a simple example.</p>

        <!-- Adding gallery images. We use resized thumbnails here for better performance, but it’s not necessary -->

        <div id="galleria">
          <?php for ($i = 0; $i < $descriptions->documentElement->childNodes->length; $i++) :  
                          $xmlFile = $descriptions->documentElement->childNodes->item($i);  
                          $name = htmlentities($xmlFile->getAttribute('originalname'), ENT_COMPAT, 'UTF-8');  
                          $description = htmlentities($xmlFile->getAttribute('description'), ENT_COMPAT, 'UTF-8');  
                          $source = $galleryPath . rawurlencode($xmlFile->getAttribute('source'));   
                  ?>
            <a href="<?php echo $source; ?>"><img data-title="<b>Image Name: </b> <?php echo $name; ?>" data-description="<b>Description:</b> <?php echo $description; ?>" src="<?php echo $source; ?>"></a>

      <?php endfor; ?>  
</body>
</html>

基本的に、ユーザーが削除アイコンをクリックすると、上記のコードで呼び出された「delete.php」スクリプトがサーバーから画像を削除します。これはすべてうまくいきます。

私が苦労しているのは、「delete.php」スクリプトに 2 つの変数値を渡す方法です。これらは「userid」と「locationid」です。

「delete.php」の先頭に次を追加しようとしました。

<?php session_start(); 

$_SESSION['userid']=$_POST['userid'];
$_SESSION['locationid']=$_POST['locationid'];

ただし、値は引き継がれません。私は専門家ではありませんが、フォームの「POST」アクションを使用して別の HTML ページに移動していることが原因であると思われますが、これは間違っている可能性があります。

この問題を回避する方法に関するチュートリアルをかなり読み、検索しましたが、解決策を示唆するようなものは見つかりませんでした。

誰かがこれを見て、これらの 2 つの値を「delete.php」スクリプトに渡す方法についてのガイダンスを提供してくれるかどうか疑問に思いました。

多くの感謝と親切な敬意

4

3 に答える 3

1

それらが html ページにある場合は、それらを ajax リクエストに追加します。

{ image : img.attr('src'),  userid: "VALUE", locationid: "VALUE"},
于 2012-05-17T12:18:18.050 に答える
0

次のようなHTMLページからIDを送信してみてください

 $.ajax({
    url : 'delete.php?userid=2&locationid=4',
   ........

それからphpで

$uid=$_POST['userid'];
$locid=$_POST['locationid'];

各画像のユーザーIDとロケーションIDを動的に取得する場合。

最初; btn-deleteクラスでuidおよびlocid属性を追加します。PHPをループしていると思います。

LIKE ===>

<input type="button" class="btn-delete" uid="2" locid="5">

次に、スクリプトで

    <script type="text/javascript"> 
    Galleria.ready(function() {
    this.$('thumblink').click();

    $(".galleria-image").append( 
    "<span class='btn-delete ui-icon ui-icon-trash'></span>"); 

    $(".btn-delete").live("click", function(){

    // you do not need to find img and then src... just use id of image
    var img = $(this).closest(".galleria-image").find("img");

    var uid=$(this).attr('uid');
    var locid=$(this).attr('locid');

    // send the AJAX request
    $.ajax({
    url : 'delete.php?userid='+uid+'&locationid='+locid,
    type : 'post',
    data : { image : img.attr('src') },
    success : function(){
    alert('Deleting image... ');
    img.parent().fadeOut('slow');
    }
    });

    return false;
    });

    });

</script>

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

于 2012-05-17T12:20:39.630 に答える
0
 var userid=$('#userid').val();
 var locationid=$('#locationid').val();
 $.ajax({
                url : 'delete.php',
                type : 'post',
                dataType :  'json',
                data : { image : img.attr('src'),  userid: userid, locationid: locationid},
    ,
                success : function(){
                alert('Deleting image... ');
                img.parent().fadeOut('slow');
                }
          });

dataType : 'json' を追加し、delete.php で投稿された値を取得します。

$userid=$_POST['userid'];
$locationid=$_POST['locationid'];
于 2012-05-17T12:20:08.673 に答える