2017-05-16 6 views
0

私は画像を選択するときにモーダルボックスの確認をします。新しい画像で変更するにはコードを表示する画像IDの値を保存するときに表示する:更新イメージクエリについては画像IDの値をモーダルボックスの送信スクリプトに渡して画像を更新します

while ($row = mysqli_fetch_array($result)) { 
    echo ' 
    <img id="'.$row['id'].'" data-toggle="modal" data-target="#myModal2" src = "data:image;base64,'.$row['image'].'" class="imageHieght modal-content imageStyle clickedImage w3-round-large w3-border" style="width:100%"> 
    <form method="post" action="'.$_SERVER['PHP_SELF'].'">    
    <button href="#" name="updateImage" type="button" class ="w3-button imageButtons w3-round-large" data-toggle="modal" data-target="#myModal1" >change</button>     
    <button href="#" name="deleteImage" class ="w3-button imageButtons w3-round-large" onclick=\'return confirm("Are you sure ?");\'>Delete</button> 
    <input type="hidden" name="imageId" value='.$row['id'].' /> 
    </form> 
    </div>'; 

    } 

とコード下:

if(isset($_POST['submit1'])) { 
     $image1 =addslashes($_FILES['image1']['tmp_name']); 
     $name1 =addslashes($_FILES['image1']['name']); 
     $image1= file_get_contents($image1); 
     $image1= base64_encode($image1); 
     $stmt = $con->prepare(" UPDATE images SET name = ? , image = ? , caption = ? WHERE id = ? "); 
     $stmt->bind_param("sssi",$name1,$image1,$caption1,$id1); 
     $caption1 = $_POST['imageComment1']; 
     $id1 = $_POST['imageId']; 
     $result = $stmt->execute(); 
     if ($result) { 
      echo'<div class="w3-panel w3-green w3-large w3-card w3-center hideMessage">Done</div>';  
     } else { 
      echo '<div class="w3-panel w3-red w3-large w3-card w3-center hideMessage">try again</div>'; 
     } 
    $stmt->close(); 
} 

私は、IDを与えるとき直接それは仕事だ。しかし、私は$ _POST [「IMAGEID」]を使用する場合、それはだから問題が$ ID1でです今働いて、私は答えを見つけたと思う。

モーダルボックスコード:

<div class="modal fade center" id="myModal1" role="dialog"> 
<div class="modal-dialog"> 
<div class="modal-content"> 
    <div class="modal-body"> 
    <form role="form" method="post" class="w3-center" 
    enctype="multipart/form-data">  
    <div class="form-group"> 
    <input type="file" id="image1" name="image1"/> 
    <br /> 
    <div class="form-group"> 
    <input type="text" class="form-control" id="imageComment1" 
    name="imageComment1" placeholder="" required> 
    </div> 
    </div> 
    <button type="submit" name="submit1" id="save1" class="w3-button 
     imageButtons1 w3-round-large">save  
    <span class="glyphicon glyphicon-ok"></span> 
    </button> 
    <button type="submit" class="w3-button imageButtons2 w3-red w3-round- 
    large" data-dismiss="modal"> 
    cancel <span class="glyphicon glyphicon-remove"></span> 
    </button> 
    </form>  
    </div>   
    </div> 
    </div>   
</div> 
+0

あなたはモーダルコードを追加してくださいすることができますか? – Omi

+0

ok @Omi – Beginner

+0

のフォームを編集します。フォームに 'imageId'という入力がない場合、その変数にどのようにアクセスできますか?変更ボタンのクリックイベントを処理し、モーダルフォーム – Omi

答えて

0

を試してみてください。モーダルフォーム&に値を代入して、変更のonclickに値を代入する必要があります。

まず、あなたは、このコードでボタンを変更交換する必要があります。

私はあなたの隠された入力値を変更するでしょうjqueryの機能&にIDを渡しますのonclickイベントを追加しています。

<button onclick="setImgid(' . $row['id'] . ')" href="#" name="updateImage" type="button" class ="w3-button imageButtons w3-round-large" data-toggle="modal" data-target="#myModal1" >change</button> 

スクリプトでjQueryの機能を追加します。

<script> 
function setImgid(imgId) { 
    $("#imageId").val(imgId); 
} 
</script> 

次に、あなたのモーダルフォームで<input type="hidden" id="imageId" name="imageId" />を追加します。

注:<input type="hidden" name="imageId" value='.$row['id'].' />この必要がない場合は、使用していない場合は削除できます。

全体コード:

while ($row = mysqli_fetch_array($result)) { 
echo ' 
<img id="'.$row['id'].'" data-toggle="modal" data-target="#myModal2" src = "data:image;base64,'.$row['image'].'" class="imageHieght modal-content imageStyle clickedImage w3-round-large w3-border" style="width:100%"> 
<form method="post" action="'.$_SERVER['PHP_SELF'].'">    
<button onclick="setImgid(' . $row['id'] . ')" href="#" name="updateImage" type="button" class ="w3-button imageButtons w3-round-large" data-toggle="modal" data-target="#myModal1" >change</button>    
<button href="#" name="deleteImage" class ="w3-button imageButtons w3-round-large" onclick=\'return confirm("Are you sure ?");\'>Delete</button> 
<input type="hidden" name="imageId" value='.$row['id'].' /> 
</form> 
</div>'; 

} 

モーダルボックスコード:

<div class="modal fade center" id="myModal1" role="dialog"> 
<div class="modal-dialog"> 
<div class="modal-content"> 
    <div class="modal-body"> 
    <form role="form" method="post" class="w3-center" 
    enctype="multipart/form-data">  
    <div class="form-group"> 
    <input type="file" id="image1" name="image1"/> 
    <br /> 
    <div class="form-group"> 
    <input type="text" class="form-control" id="imageComment1" 
    name="imageComment1" placeholder="" required> 
    </div> 
    </div> 
    <input type="hidden" id="imageId" name="imageId" /> 
    <button type="submit" name="submit1" id="save1" class="w3-button 
     imageButtons1 w3-round-large">save  
    <span class="glyphicon glyphicon-ok"></span> 
    </button> 
    <button type="submit" class="w3-button imageButtons2 w3-red w3-round- 
    large" data-dismiss="modal"> 
    cancel <span class="glyphicon glyphicon-remove"></span> 
    </button> 
    </form>  
    </div>   
    </div> 
    </div>   
</div> 
+0

この行はどう?$ id1 = $ _POST ['imageId']; – Beginner

+0

これはあなたにイメージIDを表示します。 – Omi

+0

ありがとうございました。今すぐに – Beginner

1

問題がで..ですここで

<input type="hidden" name="imageId" value='.$row['id'].' /> 

結果のHTMLが..です間違っている

<input type="hidden" name="imageId" value=Id1 /> 

は、あなたがあなたの形でIMAGEID入力を持っていけないこの

while ($row = mysqli_fetch_array($result)) { 
echo ' 
<img id="'.$row['id'].'" data-toggle="modal" data-target="#myModal2" src = "data:image;base64,'.$row['image'].'" class="imageHieght modal-content imageStyle clickedImage w3-round-large w3-border" style="width:100%"> 
<form method="post" action="'.$_SERVER['PHP_SELF'].'">    
<button href="#" name="updateImage" type="button" class ="w3-button imageButtons w3-round-large" data-toggle="modal" data-target="#myModal1" >change</button>     
<button href="#" name="deleteImage" class ="w3-button imageButtons w3-round-large" onclick=\'return confirm("Are you sure ?");\'>Delete</button> 
<input type="hidden" name="imageId" value="'.$row['id'].'" /> 
</form> 
</div>'; 

} 
+0

未定義インデックス:imageIdに.... – Beginner

関連する問題