2012-04-12 5 views
1

пытается вставить запись в мою БД с помощью AJAX в первый раз. У меня есть следующие ...Вставьте запись MySQL с PHP и AJAX

Форма

<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 данные будут рая вставляется в таблицу КРОМЕ «зарплата», которая в настоящее время вводится как «0»

Вставив У меня также есть DIV «тока заработной плата», который затем должен быть заселен только его нет с там введенным значением , Может ли кто-нибудь помочь мне понять, где я ошибаюсь?

+0

Можете ли вы отладить его в firebug или что-то еще и посмотреть, правильно ли передана зарплата на ваш php? – rwilliams

+0

Появляется как быть – Liam

ответ

4

Если вы хотите сэкономить себе много времени, усилий и душевной боли, используйте библиотеку jquery для своих запросов ajax. Вы можете загрузить его на http://jquery.com/

После добавления ссылки (тэг Script) в скрипт JQuery ваш Javascript для Ajax запроса может стать:

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

Также имейте в виду, что использование «insert_salary.php», как url означает, что это относительный путь и должен находиться в папке текущего скрипта.

Ваш php-скрипт должен также отображать все, что вы хотели бы добавить в свой текущий тег зарплаты.

+0

ничего себе, это легко! Он отлично работает, моя единственная проблема заключается в том, что он не показывает ответ в div ... – Liam

+0

Эх, ты поймал меня, прежде чем я смог его отредактировать. :) Вам нужно, чтобы php отображал все, что угодно, в вашем теге div. – James

+0

Итак, если бы я добавил «echo $ month_income;» под возвратом $ result, который должен работать? Это, однако, по какой-то странной причине ... @james – Liam

Смежные вопросы