2013-10-10 54 views
0

在我的索引頁中,我使用combobox將用戶狀態更新爲mysql db,然後顯示用戶在組合框中選擇的值。這些都完美地工作(更新到MySQL,顯示值他們被選中)。我想使用加載(gif)圖像。例如,如果用戶選擇一個選項,當他們點擊更新按鈕時,我需要顯示加載頁面符號(2到3秒),然後在那個位置顯示他們選擇的值。如何顯示加載程序映像選項?如何在更新MySQL數據庫中的數據後顯示加載圖像

炫魅代碼:

while($a_row = mysql_fetch_array($sql)) 
{ 
    if ($a_row['status'] != '') { 
     if ($a_row['status'] == 'Confirm') { 
    echo "\t<td><font color=\"green\"><b>" . $a_row['status'] . "</b></font></td>\n"; 
     } 
     else if ($a_row['status'] == 'Processing') { 
      echo "\t<td><font color=\"blue\"><b>" . $a_row['status'] . "</b></font></td>\n"; 
     } 
     else if ($a_row['status'] == 'Pending') { 
      echo "\t<td><font color=\"orange\"><b>" . $a_row['status'] . "</b></font></td>\n"; 
     } 
     else if($a_row['status'] == 'Cancelled') { 
      echo "\t<td><font color=\"red\"><b>" . $a_row['status'] . "</b></font></td>\n"; 
     } 
} 
else { 
    echo "\t<td width=166><form method=post> 
    <select name=update><option></option><option value=Confirm>Confirm</option><option value=Processing>Processing</option><option value=Pending>Pending</option><option value=Cancelled>Cancelled</option></select> 
    <input name=id type=hidden value='".$a_row['slno']."';> 
    <input type=submit name=submit value=Update> 
    </form>"; 

更新狀態代碼:

if($_SERVER['REQUEST_METHOD'] == "POST") 
{ 
if(isset($_POST['id'])) 
{ 
$id = mysql_real_escape_string($_POST['id']); 
$update= mysql_real_escape_string($_POST['update']); 
$sql = mysql_query("UPDATE guest_details SET status = '$update' WHERE slno = '$id'"); 
if(!$sql) 
{ 
    echo ("Could not update to database" .mysql_error()); 
} 
} 
} 
+0

使用JavaScript setTimeout函數3000秒3秒。當數據發送函數調用 – Anup

+0

如果我更新狀態一旦它應該顯示我選擇的值(進程,掛起,確認,取消 - 任何一個這些)..上面我張貼else if語句。看看這個編碼。這是PHP。如何能夠在php中插入javascript函數? – Karuppiah

+0

但你的問題有js和jquery標籤。第二件事你可以很容易地附加js你也可以在setTimeout函數內發送數據.. – Anup

回答

0

我不知道你爲什麼會想人爲製造過程較長,但在你的echo語句,你可以替換此部分:

" . $a_row['status'] . " 

與此:

<img 
    src='loading.gif' 
    onload='setTimeout(\"$(this).after(" . $a_row['status'] . "); $(this).remove();\", 2500)' 
> 

而且,所有的if-else塊可以改寫這樣的:

switch ($a_row['status']) { 
    case '': $color = 1; break; 
    case 'Confirm': $color = "orange"; break 
    case 'Cancelled': $color = "blue"; break; 
    ... 
    default: $color = null; 
} 
if ($color == 1) 
    echo //output your form 
elseif ($color) 
    echo "\t<td><font color='$color'><b><img src='loading.bmp' onload='setTimeout(\"... 
0

使用AJAX來更新內容: 呼叫的ajaxfunction來更新包含加載圖標,如下面的功能:

Ajax的功能:

function ajaxUpdate() 
{ 
    var def = '<img src="./images/loader.gif" />'; 
    $('#loading').html(def); 
    $('#loading').show(); 
    jQuery.post('update_page.php');?>", { 
     id : $('#id').val(), 
     update : $('#update').val() 
    }, 
    function(response) 
    { 
     if(response==1) 
     { 
      //success area 
      $('#loading').hide(); 
     } 
     else 
     { 
      // failure area 
     } 
    }); 
} 

<div id="loading"></div> 

調用此函數加載圖像上顯示的div id爲裝載 和阿賈克斯成功後呼叫,它將被隱時現。

相關問題