2017-09-19 1 views
1

Zunächst einmal, mein Wissen kommt von w3schools und google so bitte mit mir bare. Ich suche google, hier und w3schools, aber diese Antwort kann ich sowieso nicht finden. Nicht einmal in den "Fragen, die vielleicht schon deine Antwort haben".buttons in forms funktioniert nicht nach ajax call von db

Ich versuche, ein bisschen mehr über AJAX zu lernen, und ich habe in diesem Leitfaden W3schools AJAX database

All Reiseführer zu einem Halt kommen kann ich an der Arbeit, aber wenn ich versuche, es zu passen, um meine Bedürfnisse geht es falsch . Was ich will ist, dass, wenn ich zu "getuser.php" komme ich in der Lage sein werde, db in dieser Datei zu aktualisieren. Wenn möglich, ohne dass ich diese Seite mit dem Ergebnis verlassen habe, das ich gefunden habe. Ich wähle aus einer Dropdown-Liste vor dieser Seite. Die PHP-Dateien, die die Datenbank aktualisieren sollen, funktionieren (auf einer normalen Seite, und alles ist gut). Meine aktuelle Problemumgehung besteht darin, eine Schaltfläche hinzuzufügen, die ein zweites Fenster öffnet, um die Informationen zu aktualisieren.

Wenn ich an diesen Punkt zu gelangen:

<?php 
$q = intval($_GET['q']); 
include 'db.php'; 
$con = new mysqli($servername, $username, $password, $dbname); 
if (!$con) { 
    die('Could not connect: ' . mysqli_error($con)); 
} 

mysqli_select_db($con,"webhelp"); 
$sql="SELECT * FROM advisors WHERE id = '".$q."'"; 
$result = mysqli_query($con,$sql); 

while($row = mysqli_fetch_assoc($result)) { 
    echo "<table><tr><td>Phone</td><td>" . $row['phone'] . "</td> 
      <td><form action='addphone.php' method='post'> 
      <input type='hidden' name='id' value='".$q."'>   
      <td><input type='text' name='phone'></td> 
      <td><input type='submit' value='Update'></td> 
      </form></td></tr></table>"; 

    echo "<tr><td>LoB</td><td>" . $row['lob'] . "</td> 
      <td><form action='addlob.php' method='post'> 
      <input type='hidden' name='id' value='".$q."'> 
      <td><select name='lob'> 
      <option value='". $row['lob'] ."'>" . $row['lob'] . "</option>". 

      $sql = "SELECT * FROM lob"; 
      $result = $con->query($sql); 

      while($row = $result->fetch_assoc()) { 
      echo "<option value='" . $row["lob"] . "'>" . $row["lob"] . "</option>"; } 
       "</select></td> 
       <td><input type='submit' value='Update'></td> 
       </form> 
       </tr>"; 

    echo "<tr><td>Country</td><td>" . $row['country'] . "</td> 
      <td><form action='addcountry.php' method='post'> 
      <input type='hidden' name='id' value='".$q."'> 
      <td><select name='country'> 
      <option value='". $row['country'] ."'>" . $row['country'] . "</option>". 

      $sql = "SELECT * FROM country"; 
      $result = $con->query($sql); 

      while($row = $result->fetch_assoc()) { 
      echo "<option value='" . $row["country"] . "'>" . $row2["country"] . "</option>" ; } 
      "</select></td> 
      <td><input type='submit' value='Update'></td> 
      </form> 
      </tr>"; 

    } 
echo "</table>"; 

mysqli_close($con); 
?> 

Die "Update" Tasten nicht funktioniert. Es spielt keine Rolle, wo ich die Dateien platziere (gleicher Ordner, anderer Ordner) ect. Wenn ich jedoch einen Button mit einem Link außerhalb des Buttons hinzufüge, funktioniert dieser Button. Aber sobald es in einer Tabelle PLUS ist, ist auch method = "post" in der Form, die es durcheinander bringt.

Was mache ich falsch?

Alternativ ist es möglich, hier einen Button zu erstellen, der die $ id in ein kleines Popup-Fenster führt? (Ich kann es in einem neuen Fenster geöffnet, aber ich kann wählen, wie groß das Fenster sein sollte)

Mit freundlichen Grüßen

Chris

+2

HTML Seite Anmerkung: ''

nicht gemacht Kind '' werden. –

+0

Also nur um sicher zu sein, dass ich dich richtig verstehe. muss außerhalb von

sein? :) – Stryhns

+0

Ja, die (grundlegende) Syntax ist: '

'. Diese Antwort wird Ihnen zeigen, wie es gemacht wird https://stackoverflow.com/a/29364569/1415724 –

Antwort

0

Sie wollen das Ihr für alle drei Formen tun. Ich gebe dir ein Beispiel für den ersten.

Formular

echo "<form class='addPhoneForm' action='addphone.php' method='post'> 
     <table> 
     <tr> 
      <td>Phone</td><td>" . $row['phone'] . "</td> 
      <td><input class='phoneID' type='hidden' name='id' value='".$q."'></td>   
      <td><input class='phoneNumber' type='text' name='phone'></td> 
      <td><input class='submitme' type='submit' value='Update'></td> 
      </td> 
      </tr> 
     </table> 
     </form>"; 

AJAX

$(document).ready(function(){ 
$(".submitme").click(function(){ 

//collect variables from input 
var phoneID = $(".phoneID").val(); 
var phoneNumber = $(".phoneNumber").val(); 

// store in a string 
var dataAddPhone = 'phoneID='+ phoneID + '&phoneNumber='+ phoneNumber; 

// send to database 
$.ajax({ 
type: "POST", 
url: "addphone.php", 
data: dataAddPhone, 
cache: true, 

//if success 
success: function(response){ 

//display message 
    $(".displayMessage").html(response); 

    //and reset form 
     $(".addPhoneForm").trigger("reset"); 
} 
}); 

return false; 
}); 

}); 
+0

Vielen Dank! Es macht Sinn. Ich werde das morgen versuchen, wenn ich wieder zu Hause bin. :) – Stryhns

Verwandte Themen