Transmettez le formulaire avec plusieurs identifiants et sélectionnez PHP en utilisant AJAX
P粉729198207
P粉729198207 2024-02-26 14:17:13
0
1
447

J'essaie de collecter les cases à cocher sélectionnées, de les mettre à jour ou de les supprimer et de transmettre ce formulaire à php via ajax. Je suis très nouveau dans ce domaine et j'ai passé quelques jours à essayer de trouver un moyen.

La recherche sur le Web ne m'a donné aucun résultat, j'ai essayé d'envoyer ajax de différentes manières - aucun résultat. En utilisant uniquement PHP, j'obtiens le formulaire avec les tableaux select et ids.

Comment le faire fonctionner avec AJAX ?

Mes formulaires. Il est placé à l'intérieur de la table. Le corps du tableau se trouve dans le fichier php. Il existe d'autres formulaires dans la fenêtre modale de ce document, mentionnant simplement s'il pourrait y avoir un conflit.

<div class="inner">
                <div class="option">
                        <div class="e-table">
                            <div class="table-responsive table-lg mt-3">
                                <form method="post" id="menu_form">
                                <table class="table table-bordered">
                                        <select name="select" id="menu" >
                                            <option value="select">Please select</option>
                                            <option value="set-active">Set active</option>
                                            <option value="set-not-active">Set not active</option>
                                            <option value="delete">Delete</option>
                                        </select>
                                    <thead>
                                        <tr>
                                            <th class="text-nowrap align-middle"><input type="checkbox" id="select-all"></th>
                                            <th>Name</th>
                                            <th>Role</th>
                                            <th>Status</th>
                                            <th>Action</th>
                                        </tr>
                                    </thead>
                                <tbody id="users_data">
                                <input type="submit" value="submit" name="submit_btn" />

                                </tbody>
                                </table>
                                </form>

                            </div>
                        </div>
                </div>
            </div>

C'est ce que j'essaie de faire en utilisant AJAX.

<script type="text/javascript">
    $(document).ready(function() {
        $('#menu_form').on('submit', function (e) {
            e.preventDefault();

            $.ajax({
                type: 'post',
                url: "process.php",
                data: $('#menu_form').serialize(),
                success: function (response) {
                    console.log(response)
                }
            });
        });
    });

Mon PHP. Le corps du tableau et gère la soumission du formulaire. Seul le traitement d'une des options est présenté afin de ne pas allonger la question, les autres options sont à peu près les mêmes.

<td class="text-nowrap align-middle"><input type="checkbox" name="update_id" value="<?= $row['id'] ?>"></td>
        <td class="text-nowrap align-middle"><?= $row['name']; ?></td>
        <td class="text-nowrap align-middle"><?= $row['role']; ?></td>
        <td class="text-center align-middle">
            <?php if ($row['status'] == 1): ?>
                <i class="fa fa-circle active-circle"></i>
            <?php else: ?>
                <i class="fa fa-circle not-active-circle" style="color:grey"></i>
            <?php endif; ?>
        </td>
        <td class="text-center align-middle"><button class="btn btn-sm btn-outline-secondary badge" type="button"
                    onclick="edit_record(<?= $row['id']; ?>)" >Edit</button>
            &nbsp;<button class="btn btn-sm btn-outline-secondary badge" type="button"
                    onclick="delete_record(<?= $row['id']; ?>)" ><i class="fa fa-trash"></i></button>
        </td>
    </tr>

if(isset($_POST['submit_btn'])) {
    $idArray = $_POST['update_id'];
    $idString = implode(',', $idArray);

    if (isset($_POST['select']) && $_POST['select'] == 'set-active') {
        $statement = $pdo->prepare("UPDATE user SET status = 1 WHERE id IN ($idString)");
        $result = $statement->execute();
        if ($result) {
            $response = array('status' => true, 'message' => 'Record edited successfully.');
        }else{
            $response = array('status' => true, 'message' => 'Error');
        }

        echo json_encode($response);    
    }

P粉729198207
P粉729198207

répondre à tous(1)
P粉244730625

À mon avis, le problème est là :

if(isset($_POST['submit_btn'])) {

Le du formulaire ne fait pas partie du body/payload envoyé avec la requête POST (après tout, c'est un bouton et ne contient aucune information utile au serveur).

Donc, la vérification if() ci-dessus sera toujours if() 检查将始终为 false,并且 if()faux

et tous les blocs de code à l'intérieur du bloc if() échoueront. ne sera pas exécuté. 🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!