2016-08-08 7 views
1

im Erstellen eines Formulars, das ändern/aktualisieren mein Ticket-Status mit der Option auswählen, aber immer wenn ich einreichen. Es geht nur auf die eigene Seite. Dies ist die Adresse "http://localhost/support/admin-post.php?td=10&id=1", wenn ich auf "Senden" klicke, wird dies "http://localhost/support/admin-post.php?ticketstats%5B%5D=Pending#" passieren. Es sollte zu "status-update.php" gehen. Ich versuchte, es in noch nicht funktioniert setzen, habe ich versucht mit, kann aber nicht die Auswahlwert, das ist bekommen, warum ich php-Methode stattdessen entschied sich, hier ist mein Codesenden immer umleiten auf die gleiche Seite Aktion funktioniert nicht

<div class="hide" id="status"> 
      <form id="myform" role="form" action="ticket.php" method="POST"> 
     <select class="form-control" type="text" name="ticketstats[]"> 
      <option><?php echo $status ?></option> 
      <option class="disabled">--------------</option> 
      <option value="Pending">Pending</option> 
      <option value="Open">Open</option> 
      <option value="Closed">Closed</option> 
     </select> 
      <input class="btn pull-right" type="submit"> 
      <a class="btn pull-left" id="cancelstatus" href="#">Cancel</a> 
      </form> 
    </div> 

<?php 
if(isset($_POST['submit'])){ 

    foreach ($_POST['ticketstats'] as $select) 
    { 

     echo "<script>window.open('status-update.php? td=$ticketid&id=$empinfoid&stats=$select','_self')</script>"; 
    } 
} 
?> 


    <a class="pull-right" id="editstatus" href="#">Change</a> 
    <div id="status-duetime" class="post-footer"><?php echo time_elapsed_ago($date) ?> </div> 
</div> 
</div> 

und das ist mein main.js

var change = document.querySelector("#editstatus"); 
var cancel = document.querySelector("#cancelstatus"); 
var statuss = document.querySelector("#status"); 
var nowstatus = document.querySelector("#nowstatus"); 
var statusduetime = document.querySelector("#status-duetime"); 


change.addEventListener("click",edits) 
cancel.addEventListener("click",edits) 

function edits() { 
if (statuss.className === "hide") { 
    statuss.className = ""; 
    statusduetime.className = "hide"; 
    nowstatus.className = "hide"; 
    change.className = "hide"; 
} else { 
    statuss.className = "hide"; 
    statusduetime.className = "post-footer"; 
    nowstatus.className = "pending"; 
    change.className = "pull-right"; 
} 

} 

und dies ist meine Aktion Status-update.php

<?php 
include("database/db_conection.php"); 

$ticketid = $_GET['td']; 
$empinfoid = $_GET['id']; 

if($_POST) { 
$sql = "UPDATE employee_tickets SET TicketStatus='".$_GET['stats']."'   WHERE Id='".$_GET['td']."'"; 


if (!mysqli_query($conn,$sql)) { 
die('Error: ' . mysqli_error($conn)); 
} 

echo "<script>window.open('admin-post.php?td=$ticketid&id=$empinfoid','_self')</script>"; 
$conn->close(); 

} 
?> 

Antwort

2

Wenn Sie geben nicht die Submit-Button ein name="???" Attribut Sie können nicht für sie in Ihrem PHP testen

Also diese Zeile

ändern
<input name="submit" class="btn pull-right" type="submit"> 
     ^^^^^^^^^^^^^ 

Und diese Zeile in PHP

if(isset($_POST['submit'])){ 

Wird etwas zu testen.

Es wäre auch eine gute Idee, der Raum in dieser Linie

echo "<script>window.open('status-update.php? td=$ticketid&id=$empinfoid&stats=$select','_self')</script>"; 
              ^^^^ 

auch Deins Formen status-update.php das Skript, um loszuwerden action="ticket.php" nicht laufen sie ticket.php es

+0

versucht, läuft aber immer noch same aber ich den Namen der Eingabe zeigt auch "http: //localhost/support/admin-post.php? ticketstats% 5B% 5D = Closed & submit = Submit #" ... ich erkenne das bei "

"funktioniert wirklich nicht, ich habe versucht, andere .php Seite funktioniert immer noch nicht. Willst du die ganzen Codes sehen? – Jomai

+0

Nein. Übrigens postest du 'localhost' Links, die für niemanden nutzlos sind, die nicht auf deinem PC sind. – RiggsFolly

+0

ja, weil das Unternehmen es von lokalen xampp verwenden wird. Ich bin gerade auf der Arbeit Ausbildung Student. – Jomai

Verwandte Themen