2016-05-14 11 views
0

Ich habe Probleme beim Aufzeichnen einer einzelnen Daten (DeckName) von diesem Formular in meine MySQL-Datenbank. Ich habe alle Lösungen gelesen und ausprobiert, die ich im Internet gefunden habe, aber ich kann es nicht zum Laufen bringen. Das Ausführen des MySQL-Befehls von PHPMyAdmin funktioniert gut.Formular nicht speichern Daten in MySQL-Datenbank

Ich muss in der Deck-Tabelle der db (ID, Name, Karten) die Werte speichern.

Bitte bare mit mir und meinem Code, da ich ein kompletter Neuling bin und ich beginne mit diesem Projekt.

Jquery/Ajax-Skript:

<script> 
    $(document).ready(function(){  

     $(document).on('submit','.save',function(){ 

      var deckName = $('.deck').val(); 
      console.log(deckName); 

      $.ajax({ 
       type: "POST", 
       url: "submit.php", 
       data: { "name": deckName}, 
       success: console.log('worked') 

      }); 
     }); 
    }); 

</script> 

Form:

<div class="decklist"> 
    <form method="post" id="decklist"> 
    <input class="deck" id="deckN" type="text" value="Deck name"/> 
    <input class="save" type="submit" value="Save Deck"/> 
    </form> 
    <div class="list"> 
     <ul class="d_list"> 
      <li class='added_card' id='list_0'></li> 
     </ul> 
    </div> 
</div> 

submit.php:

<?php 


if(isset($_POST["name"])&& strlen($_POST["name"])>0){ 

    $deckName = $_POST["name"]; 
    $cards = 0; 

    echo $deckName; 

    $conn = new mysqli("localhost:8080","root","","ken"); 
    if($conn -> connect_errno){ 
     die("Failed to connect: (". $conn->connect_errno. ")".$conn->connect_error); 
    } 

    $insert = $conn->query ("INSERT INTO `deck` (deck, cards) VALUES ($deckName, $cards)"); 

    if ($insert){ 
     echo 'Successfully saved '. $deckName; 
     $conn -> close(); 
    } 

} 

?> 

Auch wenn ich speichern Deck schlagen für einreichen, die div aufgefrischt, während erhalten Ich nehme an, es sollte nicht mit Ajax.

Ich versuchte mit Klick statt Submit, und die console.log zurückgegeben alles korrekt von der Ajax-Funktion und der Div wurde nicht jedes Mal aktualisiert, aber mit Submit-Protokolle nicht mehr in der Konsole angezeigt. Ich bekomme nichts vom Echo in submit.php, niemals.

Vielen Dank.

+0

replace $ (Dokument) .on ('submit', '. Save', function() {nach $ (Dokument) .on ('submit', '. Save', Funktion (e) {e.preventDefault; – Poria

+0

Ich versuche alles weiter, aber ich habe immer noch keine Lösung für dieses Problem gefunden. Stuck hier von Tagen jetzt –

+0

Seht ihr irgendeinen Fehler in der Konsole? Können Sie überprüfen, ob Ajax gefeuert wird? Versuchen Sie, etwas in PHP zu echo und überprüfen Sie, ob Ajax gibt – Poria

Antwort

0

Sie haben Anführungszeichen um String-Werte zu setzen:

"INSERT INTO `deck` (deck, cards) VALUES ('$deckName', $cards)" 
+0

Es wird nicht helfen, sehen Sie das Frageformular wird übermittelt und Seite wird neu geladen. – Poria

+0

Es ändert sich wirklich nicht.Ich habe versucht mit doppelten und einfachen Anführungszeichen zuvor ohne Glück –

2

wie

so mit preventDefault; Versuchen
$(document).on('submit','.save',function(e){ 
e.preventDefault; 

Hoffe, dass es Ihr Problem löst!

+0

versucht, aber es hat das Problem nicht unglücklich gelöst. Trotzdem danke. –

+0

ersetzen auch Erfolg: console.log ('arbeitete') durch Erfolg: function() {console.log ('arbeitete');} – Poria

+0

Ich tat es, @RafH Antwort folgend, aber es scheint, dass es –

0

wie etwa Änderung js wie folgt aus:

$(".decklist").on("click", ".save", function(){ 
    $.post("submit.php", { name: deckName }).success(function(){ 
     console.log('worked'); 
    }); 
}); 
+0

Scheint nicht zu funktionieren, aber danke. –

0

Sie müssen sich auf dem form einreichen Ereignis binden:

$(document).ready(function(){  

     $("#decklist").on('submit',function(e){ 
      e.preventDefault(); 

      var deckName = $('.deck').val(); 
      console.log(deckName); 

      $.ajax({ 
       type: "POST", 
       url: "submit.php", 
       data: { "name": deckName}, 
       success: function(response) { 
         console.log('worked') 
       } 

      }); 
     }); 
    }); 
+0

Auch versucht, aber es hat das Problem nicht gelöst. Trotzdem danke. –

0

$ (document) .ready (function() {

$("#decklist").on('submit',function(e){ 
     e.preventDefault(); 

     var deckName = $('#deck').val(); 
     console.log(deckName); 

     $.ajax({ 
      type: "POST", 
      url: "submit.php", 
      data: { "name": deckName}, 
      success: function(response) { 
        console.log('worked') 
      } 

     }); 
    }); 
}); 

funktioniert es mir, ändern $ ('# deck'). Val();

Verwandte Themen