2016-05-02 5 views
0

Ich habe eine Schaltfläche, wo der Benutzer klickt „Ablehnen“ und ein modaler zeigen folgendes enthält:Wie bekomme ich den Eingabewert vom modalen Körper und Einfügen in die Datenbank?

<div class="modal-body"> 
    <form action="declineAnnouncementReq.php" method="POST"> 
     <div class="control-group form-group"> 
      <div class="controls"> 
       <label>Please specify your reason:</label><br> 
       <textarea rows="10" cols="100" name="reason" class="form-control" id="reason" style="resize:none"></textarea> 
      </div> 
     </div> 
    </form> 
</div> 

<div class="modal-footer"> 
     <a href="javascript:decline_id(<?php echo $row[0]; ?>) " class="btn btn-danger">DECLINE</a> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
</div> 

Und nachdem sie Eingang der Grund, sollten sie auf „ABLEHNEN“ wieder aus der modalen Fußzeile. Dieser "DECLINE" -Button innerhalb des Modals dient zum Löschen der Daten, die sie abgelehnt haben, und gleichzeitig wird der eingegebene Grund in eine andere Tabelle in der Datenbank eingefügt. Aber wenn ich auf die Schaltfläche klicke, löscht es nur die Daten, aber der Grund wird nicht in die Datenbank eingefügt.

declineAnnouncementReq.php

<?php include_once ('dbcontroller.php');   
     if(isset($_GET['decline_id'])) 
     { 
      $date = date('Y-m-d H:i:s'); 
      $reason = mysqli_real_escape_string($conn,$_POST['reason']); 

      $res=mysqli_query ($conn,"SELECT sender_id FROM announcement_requests WHERE id=".$_GET['decline_id']); 
      $row=mysqli_fetch_array($res); 
      $sender_id = $row['sender_id']; 

      $delete = mysqli_query($conn, "DELETE FROM announcement_requests WHERE id=".$_GET['decline_id']); 
      if ($delete){ 
       $insert = mysqli_query($conn, "INSERT into pres_rec VALUES(id,'$sender_id','$reason','declined', '$date')"); 
       header("Location: requests.php"); 
      } 
     } 
    ?> 

Ich weiß, dass ich nicht ein Submit-Button, aber ich weiß nicht, wo soll ich es diese Stelle setzen? Oder wie werde ich es mit dem Javascript in meinem <a href="javascript:decline_id(<?php echo $row[0]; ?>) " class="btn btn-danger">DECLINE</a> innerhalb der modalen Fußzeile kombinieren?

EDIT: Mein JavaScript-Code für mein decline_id

<script type="text/javascript"> 
    function decline_id(id) { 
     if(confirm('Are you sure you want to decline this request?')) 
     { 
      window.location.href='../admin/declineAnnouncementReq.php?decline_id='+id; 
     } 
    } 
</script> 
+0

bitte posten Sie Ihre Javascript-Code für die 'decline_id' Funktion einreichen. Ich wette, dass es nicht richtig serialisiert und das Formular für Sie einreicht. –

+0

Hallo mein Herr. Ich habe gerade meinen JavaScript-Code veröffentlicht. @JeffPuckettII – Felix

Antwort

0

von window.location.href='... in Ihrer decline_id Funktion einstellen, die Sie umleiten lediglich den Benutzer auf eine neue Seite, ohne eine der form bezogener Daten.

eine Lösung wäre, die submit() Funktion zu verwenden.

Zum einen können Sie die decline_id in der Abfragezeichenfolge beibehalten Verwendung durch den Druck in der PHP-out formaction, und stellen Sie sicher, geben Sie Ihre form ein id, da dies es für die Vorlage auszuwählen, zu erleichtern.

<form id="myForm" action="../admin/declineAnnouncementReq.php?decline_id=<?php echo $row[0]; ?>" method="POST"> 

nächstes können Sie das Formular in Ihrem decline_id Funktion

function decline_id(id) { 
    if(confirm('Are you sure you want to decline this request?')) 
    { 
     document.getElementById("myForm").submit(); 
    } 
} 
+0

das ist besser, danke, mein Herr. aber es hat die Einfügeabfrage immer noch nicht gemacht. – Felix

+0

Welchen Fehler haben Sie vom Insert-Versuch erhalten? –

+0

Dies ist, was es zeigt 'Spalte count stimmt nicht Wert Anzahl in Zeile 1 'nicht wirklich sicher, es bedeutet? – Felix