0

在我的索引页面中,我使用组合框将用户状态更新为 mysql db,然后显示用户在组合框中选择的值。这些都完美地工作(更新到mysql,显示他们选择的价值)。我想使用加载(gif)图像。例如,如果用户选择一个选项并且当他们单击更新按钮时,我需要显示加载页面符号(2 到 3 秒),然后在该位置显示他们选择的值。如何显示加载器图像选项?

主页代码:

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());
}
}
}
4

2 回答 2

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(\"...
于 2013-10-10T15:17:17.320 回答
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>

调用此函数时,加载图像会显示在带有 id加载的 div 上, 并且在 ajax 调用成功后它将被隐藏。

于 2014-01-29T13:28:17.143 回答