Parece que debería ser bastante simple, pero estoy tratando de actualizar los datos en función de un cambio de valor variable. Cuando hace clic en el botón, necesito la variable "filtro" para cambiar su valor, que luego cambiará el contenido de la página. Cuando el valor cambia, hacemos una llamada de WP para recuperar contenido nuevo. Mi problema es que tengo dificultades para descubrir cómo actualizar el valor mediante un evento onclick con PHP.
function filterMedia(filter) { const currentURL = window.location.href; fetch(currentURL, { method: "POST", body: JSON.stringify({ "filter": filter }), headers: { "Content-Type": "application/json" } }) .catch(err => console.log(err)); } <?php $filter = ""; if (isset($_POST['filter'])) { switch($_POST['filter']) { case "media": $filter = "news-article"; break; case "press": $filter = "press-release"; break; case "video": $filter = "video"; break; } } ?> <div class="news-filter"> <div class="filter"> <button onclick="filterMedia('media')">In The Media</button> </div> <div class="filter"> <button onclick="filterMedia('press')">Press Releases</button> </div> <div class="filter"> <button onclick="filterMedia('video')">Videos</button> </div> </div>PHP $_POST solo se completa a partir de parámetros codificados en url o multipart/form-data, no analiza el contenido JSON. Así que envía ese formato:
function filterMedia(filter) { const currentURL = window.location.href; fetch(currentURL, { method: "POST", body: "filter=" + encodeURIComponent(filter), headers: { "Content-Type": "application/x-www-form-urlencoded" } }) .catch(err => console.log(err)); }