Link to home
Start Free TrialLog in
Avatar of B O
B O

asked on

I am trying to add classes and names to three different sets of checkboxes, previously I have a page with one set of checboxes but for editng its easier to update 3 at once before updating to database

I have a three sets of checkboxes the user can select to update
for each set i have a seprate code that will update the button status.

With some help I have previously succesfully was able to add a active class each checkbox one selected and deletes the previous selected one.
For the editing page when the user want to edit something I taught it would be easier to update 3 sets at the same time.

But now the issues is that I copy pasted them and put them inside one document.
Now I am facing some issues when trying to update currerent status of a button..

I thank you in advance for looking in to my question.

edit-page-sequel.php
<?php 
    include_once 'admin-nav.php';
    include_once 'admin-page-header.php';
    // include_once 'includes/post.incl.php'; 
?>
<main class="container my-5">
        <div class="col-sm-10">
        
            <section class="align-self-center">
            <h1 class="font-weight-light text-center text-lg-left mt-4 mb-0">Bewerk artikel</h1>
            <br>
            <form action="" method="post">
                <h3>Selecteer een Categorie</h3>
                <div id="resUpdate_Category"></div>
                <br>
                <hr>
                <h3>Selecteer een Voordeel</h3>
                <div id="resUpdate_Benefits"></div>
                <br>
                <hr>
                <h3>Selecteer een FAQ</h3>
                <div id="resUpdate_Faq"></div>
                <br>
                <hr>
                <section class="form-group">        
                    <button type="submit" name="" class="submit">pagina updaten</button>
                </section>
            </form> 
        </section>
    </div>
</main>


<!-- admin pageheader ending div tag -->
</div>
<?php
    require 'script.php';
?>

Open in new window


js

let upBenefits_group_tag = ({groupBenefits, idBenefits}) => `
        <div class="img-responsive" alt=""> 
        <input type="checkbox" id="${idBenefits}" value="${idBenefits}">
        <span class="badge badge-info">${groupBenefits}</span>
        </div>
`;


let upfaq_group_tag = ({name_faqGroup, id_faqGroup}) => `
        <div class="img-responsive" alt=""> 
        <input type="checkbox" id="${id_faqGroup}" value="${id_faqGroup}">
        <span class="badge badge-info">${name_faqGroup}</span>
        </div>
`;


let upObjSli = ({ id, title}) => 
`<div class="img-responsive" alt="">    
    <input type="checkbox" id="${id}" value="${id}">
    <span class="badge badge-info">${title}</span>
        </div>
`;




// variable to Upload for faq of page
let upfaqGroupId = "";


// variable to Upload for advantages of page
let upbenefitId = "";
let upbenefitRowPosition= "";


// update category
let upCategoryId = ""; 


$.getJSON('/blog-app/includes/category_card.incl.php', (data) => {
    console.log("Up_CATEGORIES", data[1]);
    
    $('#resUpdate_Category').html(
        data.map(upObjSli).join('')
    )
});


$.getJSON('/blog-app/includes/faq_group_selection.incl.php', (data) => {
    console.log("Up_faq_group", data);
    
    $('#resUpdate_Faq').html(
        data.map(upfaq_group_tag).join('')
    )
});


$.getJSON('/blog-app/includes/benefits_group_selection.incl.php', (data) => {
    console.log("Up_Benefits_group", data);
    
    $('#resUpdate_Benefits').html(
        data.map(upBenefits_group_tag).join('')
    )
});




// Category
// When button pressed add active on selected button
$("#resUpdate_Category").on('click', 'button', function() {
    $("button.active").removeClass("active");
    $(this).addClass("active");
    upCategoryId = $("button.active").val();
});


// FAQ
// When button pressed add active on selected button set ready for Update
$( "#resUpdate_Faq" ).on( "click", function(e) {
    $(".active").removeAttr("name").removeClass("active");
    $(e.target).addClass('active').attr('name', 'faq_group_id');
    upfaqGroupId = String(e.target.id);
    // alert(faqName);
});


//  Advantages
// When button pressed add active on selected button set ready for Update
// $( "#resUpdate_Benefits" ).on( "click", function(e) {
//     $(".active").removeAttr("name").removeClass("active");
//     $(e.target).addClass('active').attr('name', 'benefitId');
//     upbenefitId = String(e.target.id);
//     // alert(benefitId);
// });


// $( "#upbenefit_position" ).on( "input", function(e) {
//     upbenefitRowPosition = $( "#benefit_position" ).val();
//     // alert(benefitRowPosition);
// });




// Update Form
$("#updateSequelPageForm").on('submit', function(e){
    e.preventDefault();


    let uppostData = { categoryId : $("button.active").val()};


$.post('/blog-app/includes/not_available_yet.incl.php', uppostData)
    .done((response) => {
        console.log("success", response);
        // alert('response', response);
        window.location = "/blog-app/not_available_yet.php";
    })
    .fail((e) => {
        alert('Something went wrong with uploading the data');
        console.log("Unsuccessful:", e);
    })
});

Open in new window


User generated image



Avatar of leakim971
leakim971
Flag of Guadeloupe image

using : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

const promise1 = $.getJSON('/blog-app/includes/category_card.incl.php', (data) => {
    console.log("Up_CATEGORIES", data[1]);

    $('#resUpdate_Category').html(
        data.map(upObjSli).join('')
    )
});

const promise2 = $.getJSON('/blog-app/includes/faq_group_selection.incl.php', (data) => {
    console.log("Up_faq_group", data);

    $('#resUpdate_Faq').html(
        data.map(upfaq_group_tag).join('')
    )
});

const promise3 = $.getJSON('/blog-app/includes/benefits_group_selection.incl.php', (data) => {
    console.log("Up_Benefits_group", data);

    $('#resUpdate_Benefits').html(
        data.map(upBenefits_group_tag).join('')
    )
});

Promise.all([promise1, promise2, promise3]).then(updateStatus);

const updateStatus = function() {
    // UPDATE THE STATUS WITH YOUR CODE HERE
    alert("all three $.getJSON done");
}

Open in new window

Avatar of B O
B O

ASKER

thank you answering but I think I misframed my question.

I need to add a active class to one button (Category)
and names to the other two (FAQ and Advantages)
before I use
php to update 
where are you using php to update? give me the line number
no, my question is where in your initial post are you calling the php update (which seems to call/run the code of your last comment)
Avatar of B O

ASKER





if (isset($_POST['edit-page'])) {
    //Get posted Variables user entered
    $page_Id = $_GET['pageId'];
    
    $newFileName = $_POST['page-title-edit'];
    
    if (empty($newFileName)) {
        $newFileName = "page-gallery";
    } else {
        //create lowercase of filename and replace empty space with -
        $newFileName = strtolower(str_replace(" ", "-", $newFileName));
    }
    $imgTitle = $_POST['page-title-edit'];
    $imgDescr = $_POST['page-text-edit'];
    
    $pageImg = $_FILES['edit-page-img'];
    
    $fileName = $pageImg['name'];
    $fileType = $pageImg['type'];
    $fileTempName = $pageImg['tmp_name'];
    $fileError = $pageImg['error'];
    $fileSize = $pageImg['size'];
    
    $fileExtension = explode(".", $fileName);
    $fileActualExt = strtolower(end($fileExtension));
    
    $allowed = array("jpg", "jpeg", "png");
    
    if (empty($fileName)) {
        include_once "dbh.incl.php";
        $sql = "SELECT titlePage, descPage FROM pages;";
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
                printf("SQL statement gefaald 1!");
            } else {
                mysqli_stmt_execute($stmt);
                $result = mysqli_stmt_get_result($stmt);
                $sql = "UPDATE pages SET titlePage =?, descPage =? WHERE idPage =?";
                if (!mysqli_stmt_prepare($stmt, $sql)) {
                    print("SQL statement gefaald 2!");
                } else {
                    mysqli_stmt_bind_param($stmt, "sss", $imgTitle, $imgDescr, $page_Id);
                    mysqli_stmt_execute($stmt);
                    header("Location: ../blog-app/page-manage.php?pageId=". $page_Id ."&uploadtextonly=succes");
                    exit();
                } 
            }
                    } else if (in_array($fileActualExt, $allowed)) {
                        //  check if there is an error in uploaded file
                        if ($fileError === 0) {
                            //check if size is bigger than 2mb / 2000000 bytes
                            if ( $fileSize < 2000000 ){
                                // create new name for uploaded file with Uniq Id
                                $imageFullName = $newFileName . "." . uniqid("", true) . "." . $fileActualExt;
                                // destination of file uploaded
                                $fileDestination = dirname(__DIR__) . "/img/gallery/" . $imageFullName;


                                include_once "dbh.incl.php";


                                if (empty($imgTitle) || empty($imgDescr)) {
                                    header("Location: /blog-app/page-edit.php?uploadTitle&Description=empty");
                                    exit();
                                } else {
                                    $sql = "SELECT titlePage, descPage, imgPage FROM pages;";
                                    $stmt = mysqli_stmt_init($conn);
                                    if (!mysqli_stmt_prepare($stmt, $sql)) {
                                        echo"SQL statement gefaald 1!";
                                    } else {
                                        mysqli_stmt_execute($stmt);
                                        $result = mysqli_stmt_get_result($stmt);
                                        $rowCount = mysqli_num_rows($result);
                                        $setImageOrder = $rowCount + 1;
                                        $sql = "UPDATE pages SET titlePage ='" . $imgTitle . "', descPage ='" . $imgDescr . "', imgPage ='" . $imageFullName . "' WHERE idPage ='" . $page_Id . "' ";
                                    if (!mysqli_stmt_prepare($stmt, $sql)) {
                                        echo "SQL statement gefaald 2!";
                                        } else {
                                            mysqli_stmt_bind_param($stmt, "sss", $imgTitle, $imgDescr, $imageFullName);
                                            mysqli_stmt_execute($stmt);
                                            if (file_exists($fileTempName)) {
                                                if (move_uploaded_file($fileTempName, $fileDestination)){
                                                    header("Location: /blog-app/posts-manage.php?pageId=" . $page_Id . "&upload=succes");
                                                    exit();
                                                } else {
                                                    header("Location: /blog-app/page-edit.php?pageId=" . $page_Id . "&uploadImage=failed");
                                                    exit();
                                                }
                                            } else {
                                                header("Location: /blog-app/page-edit.php?pageId=" . $page_Id . "&uploadImage=fileDoesntExist");
                                                exit();
                                            }
                        }
                    }
                }
            }
        }
    }
    
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
}



Open in new window

you still post how you're setting (or showing?) the status

Now I am facing some issues when trying to update currerent status of a button..
give me the line of that button in your first post, so I can see the button
maybe you miss my comment line 28
Avatar of B O

ASKER

Excuse me I mean
checkboxes not button

this is al the code there is .

these are the checkboxes being used
before update
let upBenefits_group_tag = ({groupBenefits, idBenefits}) => `
        <div class="img-responsive" alt=""> 
        <input type="checkbox" id="${idBenefits}" value="${idBenefits}">
        <span class="badge badge-info">${groupBenefits}</span>
        </div>
`;


let upfaq_group_tag = ({name_faqGroup, id_faqGroup}) => `
        <div class="img-responsive" alt=""> 
        <input type="checkbox" id="${id_faqGroup}" value="${id_faqGroup}">
        <span class="badge badge-info">${name_faqGroup}</span>
        </div>
`;


let upObjSli = ({ id, title}) => 
`<div class="img-responsive" alt="">    
    <input type="checkbox" id="${id}" value="${id}">
    <span class="badge badge-info">${title}</span>
        </div>
`;


let update_method_tag = ({nameMethod_tag, idMethod_tag}) => `
        <div class="img-responsive" alt=""> 
        <input type="checkbox" name="select_method_name" id="${idMethod_tag}" value="${idMethod_tag}">
        <span class="badge badge-info">${nameMethod_tag}</span>
        </div>

Open in new window

`
page.php
<?php 
    include_once 'admin-nav.php';
    include_once 'admin-page-header.php';
    // include_once 'includes/post.incl.php'; 
?>
<main class="my-5">
        <div class="col-sm-10">
        
            <section class="align-self-center">
            <h1 class="font-weight-light text-center text-lg-left mt-4 mb-0">Bewerk artikel</h1>
            <br>
            <form action="" method="post">
                <h3>Selecteer een Categorie</h3>
                <div id="resUpdate_Category"></div>
                <br>
                <hr>
                <h3>Selecteer een Methode</h3>
                <div id="update_method"></div>
                <br>
                <hr>
                <h3>Selecteer een Voordeel</h3>
                <div id="resUpdate_Benefits" style="display: flex; justify"></div>
                <br>
                <hr>
                <h3>Selecteer een FAQ</h3>
                <div id="resUpdate_Faq"></div>
                <br>
                <hr>
                <section class="form-group">        
                    <button type="submit" name="" class="submit">pagina updaten</button>
                </section>
            </form> 
        </section>
    </div>
</main>


<!-- admin pageheader ending div tag -->
</div>
<?php
    ob_end_flush(); 
    require 'script.php';
?>

Open in new window




ASKER CERTIFIED SOLUTION
Avatar of leakim971
leakim971
Flag of Guadeloupe image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial