Actualmente estoy trabajando en un sitio de wordpress,
Estoy usando un formulario que el usuario puede modificar para que actualice la base de datos:
Aquí está el código HTML/PHP:
echo '<form class="form-verifdoc" target="noredirect" method = "post">'; echo '<label class="label-verifdoc" style="float:left;margin-top:10px;margin-right:10px;"for="'.$name_input_verifdoc.'">'.$label_element.'</label><textarea style="float:right;margin-bottom:10px;vertical-align:middle!important;border-left: 5px solid black;resize:vertical;" rows="1" type="text" name="variables['.$name_input_verifdoc.']">'.$contenu_input_verifdoc.'</textarea>'; echo'<input name="idchamps['.$id_input_verifdoc.']" type="hidden" value="'.$id_input_verifdoc.'">'; echo '<div class="div_edit_verifdoc">'; echo '<input type="submit" id="'.$id_input_verifdoc.'" class="bouton-edit-champ-doc" onclick="return confirm(\'Voulez-vous vraiment modifier les informations de ce champ ?\') && AlertQuery()" name="bouton-envoi-editform" value="Editer le champ"/>'; echo '</div>'; echo '<iframe name="noredirect" style="display:none;"></iframe>'; echo '</form>';
Yo uso una confirmación para que el usuario tenga que confirmar que quiere actualizar los datos.
Y aquí está el script que usa la consulta wpdb para actualizar los datos de MySQL:
<script> <?php if (isset($_POST['bouton-envoi-editform']) && !empty($_POST['bouton-envoi-editform'])) { foreach($_POST['variables'] as $variableName => $variable){ $ValeurChampModif = $variable; } foreach($_POST['idchamps'] as $champid => $idchamp){ $Champ_id = $idchamp; } $modif_doc_bdd = $wpdb->query($wpdb->prepare("UPDATE `mod114_frmt_form_entry_meta_copie` SET `meta_value` = '$ValeurChampModif' WHERE `mod114_frmt_form_entry_meta_copie`.`meta_id` = $Champ_id;")); } else { } ?> function AlertQuery($modif_doc_bdd){ <?php if( $modif_doc_bdd ){ ?> alert('Les modifications ont bien été enregistrées.'); <?php }else{ ?> alert('⚠ ERREUR, les modifications n\'ont pas pu être enregistrées. Veuillez ré-essayer.'); <?php } ?> } </script>
Estoy tratando de obtener la función AlertQuery para generar una alerta emergente si la consulta de wpdb fue exitosa o no al actualizar los datos.
Pero parece que no puedo captar la respuesta de la consulta $wpdb...
Intenté poner la función para tener todo dentro, pero eso no funcionó porque no abriría la ventana emergente.
Si usa $wpdb->update()
, devuelve el número de filas actualizadas en caso de éxito o falso en caso de error, si luego verifica si $wpdb->update()
es falso o no, puede llamar a su método AlertQuery()
consecuencia.
Espero haberme explicado correctamente, vea los documentos aquí: https://developer.wordpress.org/reference/classes/wpdb/update/#return
$modif_doc_bdd = $wpdb->query($wpdb->prepare("UPDATE `mod114_frmt_form_entry_meta_copie` SET `meta_value` = '$ValeurChampModif' WHERE `mod114_frmt_form_entry_meta_copie`.`meta_id` = $Champ_id;")); if ( false === $modif_doc_bdd ) { // There was an error. } else { // No error. You can check updated to see how many rows were changed. }