(If my english is bad I'm from pewdiepieland) I have a problem that itch the hell out of me.
I have a page with a picture gallery. When logged in every picture gets a form where you can change the description or delete the picture. I also have a form where you can add a new picture to the gallery.
If I add a picture or delete/edit an existing one the part of the page where all of the pictures are shown reloads so that the new content is loaded. (since I don't want the whole page to reload and also wants to show a message about what happened, eg. "The picture was successfully uploaded/changed/deleted").
The problem is that the forms inside of the part which were reloaded stops working. I need to reload the whole page if I want to delete or edit another image. (The form for submitting a new picture still works, since it's outside of the "reloaded part of the page")
Do I have to reload the javascriptfile or anything else, or what do I need to do?
Do you guys need some parts of the code to check? It feels like I need to add something to my code to prevent this instead of changing the existing.. but hey what do I know...
Best Wishes and Merry Christmas!
UPDATE << with Simplyfied code:
HTML/PHP
<form id="addimg" role="form" method="POST" enctype="multipart/form-data">
    <input type="file" name="img">
    <input type="text" name="imgtxt">
    <input type="submit" name="gallery-submit" value="Add Image">
</form>
<div id="gallery_content">
    <?php
    $result = mysqli_query($link, "SELECT * FROM gallery");
    $count = 1;
    while($row = mysqli_fetch_array($result)) {
        $filename  = $row['filename'];
        $imgtxt    = $row['imgtxt'];
        $id        = $row['id'];
        echo '<div>';
        echo    '<img src="gallery/' . $filename . '">';
        echo    '<form id="editimg' . $count . '" role="form" method="POST">';
        echo        '<input type="text" name="imgtxt">';
        echo        '<input type="hidden" name="id">';
        echo        '<input type="submit" name="changeimgtxt" data-number="' . $count . '" value="Update" class="edit_img">';
        echo    '</form>';
        echo    '<button class="delete_img" value="' . $id . '">Delete</button>';
        echo '</div>;
    }
    ?>
</div>
JAVASCRIPT/JQUERY
$(document).ready(function() {
    $('#addimg').submit(function(e) {
        e.preventDefault();
        
        gallery('add', '');
    });
    $('.edit_img').click(function(e) {
        e.precentDefault();
        var formNr = $(this).data('number');
        var dataString = $('#editimg' + formNr).serialize();
        gallery('edit', dataString)
    });
    $('.delete_img').click(function(e) {
        e.preventDefault();
        var imgid = $('this').value();
        gallery('delete', imgid);
    });
    function gallery(a, b) {
        if (a == 'add') {
            var dataString = new FormData($('#addimg')[0]);
            $.ajax({
                type: "POST",
                url: "gallery_process.php",
                data: dataString,
                success: function(text){
                    if(text == 'add_success') {
                        - Show success message -
                        $('#gallery_content').load(document.URL + ' #gallery_content');
                    } else {
                        - Show fail message -
                    }
                },
                cache: false,
                contentType: false,
                processData: false
            });
        } else if (a == 'edit') {
            var dataString = b;
            $.ajax({
                type: "POST",
                url: "gallery_process.php",
                data: dataString,
                success: function(text){
                    if(text == 'edit_success') {
                        - Show success message -
                        $('#gallery_content').load(document.URL + ' #gallery_content');
                    } else {
                        - Show fail message -
                    }
                }
            });
        } else if (a == 'delete') {
            var dataString = 'imgid=' + b;
            $.ajax({
                type: "POST",
                url: "gallery_process.php",
                data: dataString,
                success: function(text){
                    if(text == 'delete_success') {
                        - Show success message -
                        $('#gallery_content').load(document.URL + ' #gallery_content');
                    } else {
                        - Show fail message -
                    }
                }
            });
        } 
    }
});
I don't think you need to see my process-file. Any clues?
 
     
     
    