hola, estoy tratando de hacer una ventana emergente Sí/No en js pero no funciona, este es mi código:
una versión es esta:
if($admin==1) print('<td><a href="delete.php?id='.$value. '"> <BUTTON class="btn btn-outline-info" onclick="AlertPopUp()" ><i class="fa fa-trash" style="color: #000000;"></i> </BUTTON></a>'); function AlertPopUp(){ let AlertPopUp = confirm("Are you sure you want to delete this client?"); if(AlertPopUp){ window.open('delete.php?id='+$value); }else{ return; } }Esto está funcionando, pero si presiono cancelar aún se elimina el valor, así que intenté abrir la ventana, pero la URL obtiene el valor de php $value, por lo que no sé cómo pasarlo.
El otro método que probé es este:
if($admin==1) print('<td><a href="delete.php?id='.$value. '" onclick="return confirm('Are you sure you want to delete this client?');"> <BUTTON class="btn btn-outline-info" onclick="AlertPopUp()" ><i class="fa fa-trash" style="color: #000000;"></i> </BUTTON></a>');pero esto no funciona en absoluto, no aparece ninguna ventana emergente y el texto no es correcto con ' ' así que probé " " pero todavía nada.
Según tengo entendido estás trabajando dentro de una página PHP, entonces sería así: primero quita el <a> </a> y deja solo el botón porque de lo contrario se abrirá el enlace que se encuentra en href.
<? php $ admin = 1; if ($ admin == 1) print ('<BUTTON class = "btn btn-outline-info" onclick = "AlertPopUp ()"> <i class = "fa-trash" style = "color: # 000000;" > </i> </BUTTON> '); ?>// luego tocamos el script JS
<script> function AlertPopUp(){ let AlertPopUp = confirm("Are you sure you want to delete this client?"); if(AlertPopUp){ window.open('delete.php?id=<?= $value ?>'); }else{ return; } }Esta es una demostración muy simple para su lógica. No está claro por qué no funcionó para usted, a pesar del html no válido, teniendo en cuenta que si apareciera la ventana emergente, aún debería tener el comportamiento verdadero/falso.
De todos modos, sugeriría que no usara la estrategia window.open para ejecutar la acción del lado del servidor para eliminar el elemento. Eso es seguro que una solicitud de ajax es lo que necesita.
function alertPopup(){ let o = confirm("Are you sure you want to delete this client?"); if(o){ console.log('make an ajax request to the url action (eg.: /delete.php?args'); }else{ console.log('changed my mind'); } } button{ cursor: pointer; } <button onclick="alertPopup();">Test me</button>