2016-12-21 6 views
0

Ich habe Probleme mit folgenden. Vereinfachte Ich habe eine Datenbank mit zwei Tabellen Tabelle Clients mit Client Tabelle Projekte mit Client, ProjektÄndern Formular Aktion onchange Auswahl

Ich habe ein Formular mit einer Dropdown-Liste von Clients. Bei der Änderung eines ausgewählten Clients wird über die Funktionen fetch_select (val) und fetch_data.php eine zweite Dropdown-Liste von Projekten ausgefüllt. Das funktioniert gut.

Ich habe zu jeder Dropdown-Liste ein Finale hinzugefügt, um einen neuen Client oder ein neues Projekt hinzuzufügen. In beiden Dropdown-Listen ist die Option "Hinzufügen" unten aufgeführt. Tricky ist jetzt, wie man die onchange in dem Moment ändert, dass "add" ausgewählt ist. In diesem Fall möchte ich, dass ein modales Fenster erscheint, damit ich einen Client oder ein Projekt hinzufügen kann, der bei einem Submit verschwindet, damit der Benutzer zurückkehrt, wo er oder sie war.

Vergeblich habe ich versucht, eine if-Anweisung in der Funktion fetch_select (val), so wird es

Below kein Start fetch_data.php, wenn der Inhalt des Clients ist „ADD_CLIENT“ zu bauen, ist der Code ich benutze:

Datei index3.php:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
include 'dbconnect.php'; 
?> 

<script type="text/javascript" src="scripts/jquery-3.1.1.min.js"></script> 
<script type="text/javascript"> 
function fetch_select(val) 
{ 
$.ajax({ 
type: 'post', 
url: 'fetch_data.php', 
data: { 
    get_option:val 
}, 
success: function (response) { 
    document.getElementById("projects").innerHTML=response; 
} 
}); 
} 
</script> 

<?php 
echo "<table>"; 
echo "<form action='index3.php method='post'>"; 
echo "<tr>"; 
echo "<td>"; 
echo "<select name='client' id='client' onchange='fetch_select(this.value);'>"; 
echo "<option>Name of Firm</option>"; 
$select = mysqli_query($Verbinding,"SELECT client FROM clients GROUP by client"); 
while ($row = mysqli_fetch_array($select)) 
    { 
    echo '<option value="'.$row['client'].'">'.$row['client'].'</option>'; 
    } 
echo "<option value='add_client'>Add Client</option>"; 
echo "</select>"; 
echo "</td>"; 
echo "<td>"; 
echo "<select name='project' id='projects'>"; 
echo "<option>Select Project</option>";    
echo "</select>"; 
echo "</td>"; 
echo "</tr>"; 
echo "</table>"; 
echo "</form>"; 
?> 

Datei: fetch_data.php

<?php 

if(isset($_POST['get_option'])) 
{ 
include 'dbconnect.php'; 
$client= $_POST['get_option']; 
    { 
    $find = mysqli_query($Verbinding,"SELECT * FROM projects WHERE client='".$client."'"); 
    while($row = mysqli_fetch_array($find)) 
     { 
     echo "<option value='".$row['project']."'>".$row['project']."</option>"; 
     } 
    } 
    echo "<option value='add_project'>Add Project</option>"; 
    exit; 
} 
?> 

Ich hoffe, dass mir jemand helfen kann. Danke und Gruß,

Paul

Antwort

1

Wenn ich nicht falsch verstanden habe, scheint dies recht einfach:

function fetch_select(val) 
{ 
    if (val != "add_client") 
    { 
    $.ajax({ 
    type: 'post', 
    url: 'fetch_data.php', 
    data: { 
     get_option:val 
    }, 
    success: function (response) { 
     document.getElementById("projects").innerHTML=response; 
    } 
    }); 
    } 
    else 
    { 
    //code here to show your popup 
    } 
} 
+0

Danke Adyson für Ihre schnelle Antwort. Wenn das sonst funktioniert, ist das ein erster Schritt. Allerdings kann ich das modale Fenster nicht anzeigen. Ich habe ein CSS-Stylesheet hinzugefügt. –

+0

kein Problem. Diese Antwort löst dein Problem, also wenn es hilft, bitte als akzeptiert markieren, danke :-). In Bezug auf das Hinzufügen eines Modals können wir Ihnen nicht wirklich helfen, bis Sie das HTML/CSS/Skript, das Sie bisher haben, zeigen - wahrscheinlich verdient es eine separate Frage, da es ein separates Problem ist. – ADyson

+0

P.S. wenn Sie hier auf Ihre neue Frage verlinken, werde ich versuchen und helfen – ADyson