2014-03-28 117 views
0

以下代碼正常工作,我正在使用它,因爲我需要更新數據庫中的某些備註而不刷新頁面。 但是當我需要在同一事件中需要做些什麼時才能獲得一些數據?發送數據到數據庫並通過AJAX返回

的index.php,變革應該發生

<?php 
$s = $GET['...'] 
$p = $GET['...'] 
print ' 
<form id="notesForm"> 
    <textarea name="c">'.$note.'</textarea> 
    <input type="text" value="LAST_CHANGE_NEED_GIVE_BACK_FROM_DB"> 
    <input type="hidden" name="s" value="'.$s.'"> 
    <input type="hidden" name="p" value="'.$p.'"> 
    <input type="submit" value="save note"> 
    <div id="response"></div> 
</form> 
'; 
?> 

腳本其發佈的數據live_notes.php,而且也應該的,因爲目標

$(document).ready(function(){ 
    $('#notesForm').submit(function(){ 
     event.preventDefault(); 
     $('#response').html("<b>saving...</b>"); 
     $.ajax({ 
      type: 'POST', 
      url: 'notes/live_notes.php', 
      data: $(this).serialize() 
     }) 
     .done(function(data){ 
      $('#response').html(data); 
     }) 
     .fail(function() { 
      alert("bad luck"); 
     }); 
     return false; 
    }); 
}); 

筆記被改變/live_notes.php

<?php 
$s = $_POST['s']; 
$p = $_POST['p']; 
$c = $_POST['c']; 

// connecting DB 

mysql_query(" 
UPDATE `poznamky` 
SET 
    last_change = now(), 
    page = '$p', 
    content = '$c' 
WHERE 
    page = '$p'; 
"); 

有什麼想法嗎?

+0

你想返回一些數據從notes/livenotes.php? –

+0

實際上,需要在同一個事件中重新加載一些數據,並且真的不知道該怎麼做...:/ – falcon

+0

你想執行更新,然後從db中選擇一些數據並返回到ajax? –

回答

1
<?php 
$s = $_POST['s']; 
$p = $_POST['p']; 
$c = $_POST['c']; 

// connecting DB 

$blnSuccess = mysql_query(" 
UPDATE `poznamky` 
SET 
    last_change = now(), 
    page = '$p', 
    content = '$c' 
WHERE 
    page = '$p'; 
"); 

if($blnSuccess){ 
echo "success"; 
} 
else { 
echo "not success!"; 
} 

在你的jQuery:

.done(function(data){ 
      $('#response').html(data); 
} 

數據有successnot success!其返回作爲Ajax響應。

更新
如果你想從數據庫中返回一些數據,那麼:

$result = mysql_query(" 
    select * 
     from `poznamky` 
"); 

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
    echo $row['content']; 
} 

然後,它會返回所有content場從poznamky表爲數據在阿賈克斯。

+0

謝謝你的時間和迴應Awlad :) – falcon

+0

那麼,你說「哪個返回作爲ajax響應,但我怎麼需要特定的列而不是回聲(不)成功。謝謝 – falcon

+0

你有沒有看到我更新的答案? –

1
<?php 
$s = $_POST['s']; 
$p = $_POST['p']; 
$c = $_POST['c']; 

// connecting DB 

$OK = mysql_query(" 
UPDATE `poznamky` 
SET 
    last_change = now(), 
    page = '$p', 
    content = '$c' 
WHERE 
    page = '$p'; 
"); 

$id = mysql_insert_id(); 
$res = mysql_query("select * from poznamky where id = $id"); 


$data = mysql_fetch_array($res); 

//Print raw or JSON of $data like json_encode($data) etc 
+0

Sarah,太棒了,謝謝你 – falcon

+0

請投票支持謝謝 –

+0

我會喜歡,但沒有足夠的聲譽。) – falcon

0

如果你想返回的東西回來,然後在你的notes.php,你可以做這樣的事情:

$s = $_POST['s']; 
$p = $_POST['p']; 
$c = $_POST['c']; 

// connecting DB 

mysql_query(" 
UPDATE `poznamky` 
SET 
    last_change = now(), 
    page = '$p', 
    content = '$c' 
WHERE 
    page = '$p'; 
"); 

$select = "//use your select query and loop here and get all data in this variable"; 

exit($select); 

和jQuery中:

.done(function(data){ 
      //data has the response. You can do whatever you want to do with it. 
} 
+0

謝謝你的迴應,我很感激。 – falcon