2016-04-28 5 views
3

Ich möchte ein bestätigen Ja/Nein Feld in php mein Code wie folgt erstellen:Wie erstelle ich bestätige ja/nein in PHP?

<?php 
if(isset($_REQUEST['id'])) 
{ 
?> 

<script> 
var cf=confirm("do you want to delete Y/N"); 
if(cf) 
    { i want to call code edit of php 

    } 
</script> 
<?php 
} 
?> 
<html> 
<head> 
</head> 
<body> 
<form name="frm" method="post" action="edit.php"> 
<a href="edit.php?id=1">Edit </a> <br> 
<a href="edit.php?id=2">Edit </a> <br> 
<a href="edit.php?id=3">Edit </a> <br> 

</form> 

</body> 
</html> 

I Wanna wenn drücken Sie Ja, ich rufe Code bearbeiten in PHP Aber es funktioniert nicht. Können Sie mir helfen? Danke dir

+0

Verwendung Inline 'onclick' Ereignis –

Antwort

3

In Ihrem Code haben Sie PHP erwähnt, aber JavaScript verwendet.

Wenn Sie eine confirm mit PHP zu tun,

eine Zwischenseite zur Bestätigung erstellen.

Post Formulardaten dort.

Auf Bestätigungsseite, fügen Sie zwei Tasten einreichen:

Yes: Wird diese gedrückt, umleiten/Post-Seite zu bearbeiten.

No: Wird diese gedrückt, Umleitung zurück So

zu bilden, Ihre Bestätigungsseite sein sollte:

<html> 
<head> 
</head> 
<body> 

<?php 
if (isset($_POST['confirm'])) { 
    if ($_POST['confirm'] == 'Yes') { 
     header("Location:edit.php?id=1"); 
    } 
    else if ($_POST['confirm'] == 'No') { 
     header("goBack.php"); 
    } 
} 
?> 

<form method="post"> 
<?php 
if(isset($_REQUEST['id'])) 
{ 
?> 
<input type="submit" name="confirm" value="Yes"><br/> 
<input type="submit" name="confirm" value="No"><br/> 
<?php 
} 
?> 
</form> 
5

Gerade Inline-Onclick-Ereignis verwenden.

Dies ist eine einfache Technik, die Sie in Ihrer PHP-Seite verwenden können.

<a href="edit.php?id=1" onclick="return confirm('do you want to delete Y/N')">Edit </a> 
+2

Vielleicht kann es ein wenig offensichtlich, aber Es ist gut, darauf hinzuweisen, dass er den Code zwischen den 'script'-Tags nicht benötigt, wenn er das tut. Zusätzlich könnte diese Lösung für alle "a" -Tags mit jQuery verwendet werden. +1 – Jujunol

0

eine ID auf dem Formular Put:

einen Ereignis-Listener für das onsubmit des Formular erstellen Ereignis

<script> 
    function onFormSubmission(e){ 
     return confirm("do you want to delete Y/N"); 
    } 

    var frm = document.getElementById('frm'); 
    frm.addEventListener("submit", onFormSubmission); 
</script> 

Wenn der Benutzer ein Formular übermittelt werden sie mit Ihrer Nachricht aufgefordert. Wenn sie auf "Ja" klicken, gibt die Funktion "true" zurück und das Formular wird gesendet. Andernfalls wird die Funktion false zurück und die Formulareinreichung

wird abgebrochen
0

Ich denke, das ist das, was Sie tun möchten:

<?php 
//YOU MUST BE SURE THAT YOUR URL CONTAINS THE $_REQUEST['id'] PARAMETER, OTHERWISE IT WON'T WORK FROM YOUR CODE... IF YOU WANT IT TO WORK REGARDLESS OF THAT, JUST COMMENT OUT THE IF(ISSET(... BLOCK... 
$editURL = "edit.php"; //EDIT URL HERE 
if(isset($_REQUEST['id'])) { 
    //ASSIGN THE ID TO A VARIABLE FOR BUILDING THE URL LATER IN JS... 
    //THE DEFAULT ID IS 1 BUT YOU CAN DECIDE WITH YOUR OWN LOGIC 
    $defaultID = ($dID = intval(trim($_REQUEST['id']))) ? $dID : 1; 
?> 

<script> 
    function confirmEdit(evt){ 
     evt.preventDefault(); 
     var cf=confirm("do you want to delete Y/N"); 
     var id=<?php echo defaultID; ?>; 
     if(cf){ 
      //i want to call code edit of php 
      //HERE'S THE CODE YOU MAY NEED TO RUN; 
      if(id){ 
       //RETURN TRUE SO THAT THE SCRIPT WITH LINK TO THE APPROPRIATE URL 
       return true; 

       // OR REDIRECT WITH JAVASCRIPT TO EDIT PAGE WITH APPROPRIATE ID 
       //window.location = "" + <?php echo $editURL; ?> + "?id=" + id; //YOU ALREADY HAVE THE EDIT URL... JUST APPEND THE QUERY-STRING WITH ID TO USE IN THE EDIT PAGE 
       // You might also just (without redirecting) return true here so to that the page continues like you just clicked on the link itself... 
      } 
     } 
    } 
</script> 
<?php 
    } 
?> 


<html> 
    <head> 
    </head> 
    <body> 
     <!-- THE FORM TAG IS NOT NECESSARY IN THIS CASE SINCE YOUR ANCHOR TAGS HAVE THE EXACT URL YOU WANT ASSOCIATED WITH THEM... AND YOU DON'T EVEN NEED JAVASCRIPT IN THIS CASE... BECAUSE THE HREF OF THE LINKS ARE HARD-CODED... --> 
     <!-- <form name="frm" method="post" action="edit.php"> --> 
      <a class='class-4-css' onclick="confirmEdit();" id='dynamic-id-based-btn-1' href="edit.php?id=1">Edit Page 1 </a> <br> 
      <a class='class-4-css' onclick="confirmEdit();" id='dynamic-id-based-btn-2' href="edit.php?id=2">Edit Page 2</a> <br> 
      <a class='class-4-css' onclick="confirmEdit();" id='dynamic-id-based-btn-3' href="edit.php?id=3">Edit Page 3</a> <br> 
     <!-- </form> --> 

    </body> 
</html> 

So, nun auf einen der Links klicken, werden Sie mich, wenn zur Bestätigung fragen I möchte die Ressource löschen oder nicht. Wenn ich ja wähle, dann wird die passende Seite für den Prozess geladen ...

0

nicht sicher, ob die anderen Antworten wirklich deine Frage beantwortet haben, das war auch mein Problem, dann habe ich experimentiert und hier ist, was ich herausgefunden habe:

.

Bestätigung in php:

$Confirmation = "<script> window.confirm('Your confirmation message here'); 
     </script>"; 

    echo $Confirmation; 

     if ($Confirmation == true) { 
    your code goes here 
    } 

, das ist alles, könnten andere Menschen aussehen, Sie sind willkommen :)