2012-04-12 31 views
1

versucht, einen Datensatz in meiner DB mit AJAX zum allerersten Mal einzufügen. Ich habe die folgende ...Einfügen MySQL-Datensatz mit PHP und AJAX

Formular

<form> 
    <input type="text" id="salary" name="salary"> 
    <input type="button" onclick="insertSalary()"> 
</form> 

AJAX

<script type="text/javascript"> 

function insertSalary() 
{ 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById('current-salary').innerHTML=xmlhttp.responseText; 
    } 
    }; 
xmlhttp.open("POST","insert_salary.php",true); 
xmlhttp.send("salary=" + document.getElementById("salary").value); 
} 

</script> 

PHP

$uid = $_SESSION['oauth_id'];  
$monthly_income = mysql_real_escape_string($_POST['salary']); 

#Insert a new Record 
$query = mysql_query("INSERT INTO `income` (user_id, monthly_income) VALUES ($uid, '$monthly_income')") or die(mysql_error()); 
$result = mysql_fetch_array($query); 
return $result; 

Nowmy Daten sein ing in die Tabelle eingefügt AUSSER das ‚Gehalt‘, die als ‚0‘

eingegeben wird

Einmal eingesetzt Ich habe auch ein div ‚strom Gehalt‘, das sollte es dann mit dort eingegebenen Wert gefüllt werden nur isnt Kann mir jemand helfen zu verstehen, wo ich falsch liege?

+0

Können Sie es in Firebug oder etwas debuggen und sehen, ob Gehalt wird ordnungsgemäß an Ihren PHP übergeben? – rwilliams

+0

scheint ja zu sein – Liam

Antwort

4

Wenn Sie sich viel Zeit, Mühe und Kummer sparen möchten, verwenden Sie die jquery-Bibliothek für Ihre Ajax-Anfragen. Sie können es herunterladen bei http://jquery.com/

Nach Hinzufügen eines Verweises (Script-Tag) mit dem jquery Skript Ihr Javascript für die Ajax-Anforderung würde:

function insertSalary() 
{ 
    var salary = $("#salary").val(); 
    $.post('insert_salary.php', {salary: salary}, function(data) 
    { 
     $("#current-salary").html(data); 
    }); 
} 

Denken Sie auch daran, dass „insert_salary.php“ können als Die URL bedeutet, dass es sich um einen relativen Pfad handelt und sich im Ordner des aktuell ausgeführten Skripts befinden muss.

Ihr PHP-Skript muss auch das wiedergeben, was Sie auch in Ihr aktuelles Gehalts-Tag einfügen möchten.

+0

wow, das ist einfach! Es funktioniert gut, mein einziges Problem ist es zeigt keine Antwort in der Div ... – Liam

+0

Eh, hast du mich erwischt, bevor ich es bearbeiten konnte. :) Sie brauchen PHP, um das zu wiederholen, was Sie in Ihrem div-Tag haben möchten. – James

+0

Also wenn ich 'Echo $ Monthly_income;' unter Rückgabe $ Ergebnis, das sollte funktionieren? Es ist jedoch nicht aus irgendeinem seltsamen Grund ... @james – Liam