2011-09-11 35 views
0

我有一個表格,我通過AJAX調用(用於CMS),然後這種形式用於更新數據庫的內容,但它不工作,我似乎無法弄清楚在哪裏。麻煩AJAX POST不更新MySQL分區

這一切都可以提交,因爲在字段中都填寫正確的數據庫行,列等數據預填充當前有什麼。問題出在AJAX submit()函數和eupdate.php MySQL查詢之間。 (要顯示通過另一個網頁拉,eindex.php)

eform.php

<?php 
require("../mcfrdb.php"); 
// Included database once using the require method 

$item = $_POST['item']; 
$page = $_POST['page']; 

$row = mysql_query("SELECT * FROM mcfr WHERE pageid = '$page'"); 
$data = mysql_fetch_array($row); 
?> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"> </script> 
<script type="text/javascript">var $j = jQuery.noConflict();</script> 

<script type="text/javascript"> 

function submit(){ 
$j.ajax({ 
type:"POST", 
url:"eupdate.php", 
data: "item=" + $j('#item') + "&itemcont=" + $j('#itemcont') + "&page=" + $j('#page'), 
success:function(response){ 
    $j("#msg").html(response); 
    } 
}); 
} 

</script> 
<div id="msg"></div> 
<form id = "edititem" name = "edititem" onsubmit="return false;" method="post" > 
<textarea cols="20" rows="5" name="itemcont" id="itemcont"><? echo $data[$item]; ?></textarea> <br/> 
<input type="text" name="item" id="item" value="<? echo $item; ?>"><br/> 
<input type="text" name="page" id="page" value="<? echo $page; ?>"><br/> 
<input type="button" value="make changes" onclick="submit()" > 
</form> 

eupdate.php

<?php 
require("../mcfrdb.php"); 
// Included database once using the require method 

$item=$_POST['item']; 
$page=$_POST['page']; 
$newcont=$_POST['itemcont']; 

$row = mysql_query("UPDATE mcfr SET '$item' = '$newcont' WHERE pageid = '$page'"); 

?> 

當我點擊我的按鈕提交,在檢查我的數據庫在此之後,沒有任何更改或更新。

預先感謝所有答覆,這裏的希望,我們可以得到這樣的固定:) 乾杯

回答

2

既然你用AJAX提交你的數據,你並不需要使用form元素(特別是它要求你做額外的事情,以防止它被正常提交)。

無論如何,基本問題可能是你(不)檢索字段的值。 $j('#item')返回綁定到item輸入的jQuery對象,而不是其值。要獲得該值,請使用.val()方法,例如:$j('#item').val()。請注意,在任何SQL查詢中使用該腳本之前,還需要將發佈的數據轉義出來,否則您很容易受到一些可怕的SQL注入攻擊。請參閱mysql_real_escape_string的文檔以獲得解釋:http://php.net/manual/en/function.mysql-real-escape-string.php

+0

感謝您的博文,我現在有回聲工作正常,所以現在ajax能夠正常工作,但仍然不會更新數據庫。 – ben

+0

忽略最後的評論,只是修正它,改變我的撇號反引號'而不是' – ben