簡體   English   中英

等待更新完成,然后刷新頁面

[英]Waiting for UPDATE to finish before refreshing page

我有一個HTML表單,用於更新MySQL中的表。 不幸的是,我的頁面重新加載了來自MySQL的預更新數據。 有沒有辦法告訴PHP中的mysqli在重新加載(並再次執行SELECT)頁面之前等待UPDATE完成?

謝謝!

(編輯:添加部分代碼)

$mysql = mysqli_connect($host,$username,$password,$dbname);
$series_mysql = $mysql->query("SELECT Name, Path, Language FROM subtitles_config");
$series_list = array();
while($serie = mysqli_fetch_array($series_mysql))
    {
    array_push($series_list,array($serie["Name"],$serie["Path"],$serie["Language"]));
    }
sort($series_list);

if ($series_list != Null)
    {
    echo "<form action='?' method='post'><table><tr><th>Nom</th><th>Sous-titres</th></tr>\n\r";
    foreach ($series_list as $serie)
        {
        echo "<tr><td><input type=text size=40 readonly name='row[]' value='" . htmlspecialchars($serie[0], ENT_QUOTES) . "'><input type='hidden' name='row[]' value='" . htmlspecialchars($serie[1], ENT_QUOTES) . "'</td><td>";?>
            <select name='row[]'>
                 <option value="aucun"<?php if ($serie[2] == "aucun"): ?> selected="selected"<?php endif; ?>>aucun</option>
                 <option value="fr"<?php if ($serie[2] == "fr"): ?> selected="selected"<?php endif; ?>>fr</option>
                 <option value="en"<?php if ($serie[2] == "en"): ?> selected="selected"<?php endif; ?>>en</option>
                 <option value="fr,en"<?php if ($serie[2] == "fr,en"): ?> selected="selected"<?php endif; ?>>fr,en</option>
            </select><?php
        echo "</td></tr>\n\r";
        }
    echo "</table><input type='submit' name='update' value='Mettre à jour' /></form>\n\r";
    }

    if ( isset( $_POST['update']))
        {
        foreach (array_chunk($_POST['row'],3) as $serie)
            {
            $mysql->query("UPDATE subtitles_config SET Language='" . $serie[2] . "' WHERE Path='" . addslashes($serie[1]) . "'");
            }
        }
<?php
$mysql = mysqli_connect($host,$username,$password,$dbname);

if ( isset( $_POST['update'])) {
  foreach (array_chunk($_POST['row'],3) as $serie) {
    $mysql->query("UPDATE subtitles_config SET Language='" . $serie[2] . "' WHERE Path='" . addslashes($serie[1]) . "'");
  }
}

$series_mysql = $mysql->query("SELECT Name, Path, Language FROM subtitles_config");
$series_list = array();
while($serie = mysqli_fetch_array($series_mysql)) {
  array_push($series_list,array($serie["Name"],$serie["Path"],$serie["Language"]));
}

sort($series_list);

if ($series_list != Null) {
  echo "<form action='?' method='post'><table><tr><th>Nom</th><th>Sous-titres</th></tr>\n\r";

  foreach ($series_list as $serie) {
    echo "<tr><td><input type=text size=40 readonly name='row[]' value='" . htmlspecialchars($serie[0], ENT_QUOTES) . "'><input type='hidden' name='row[]' value='" . htmlspecialchars($serie[1], ENT_QUOTES) . "'</td><td>";
    ?>
    <select name='row[]'>
      <option value="aucun"<?php if ($serie[2] == "aucun"): ?> selected="selected"<?php endif; ?>>aucun</option>
      <option value="fr"<?php if ($serie[2] == "fr"): ?> selected="selected"<?php endif; ?>>fr</option>
      <option value="en"<?php if ($serie[2] == "en"): ?> selected="selected"<?php endif; ?>>en</option>
      <option value="fr,en"<?php if ($serie[2] == "fr,en"): ?> selected="selected"<?php endif; ?>>fr,en</option>
    </select>
    <?php
    echo "</td></tr>\n\r";
  }

  echo "</table><input type='submit' name='update' value='Mettre à jour' /></form>\n\r";
}

試試看

您的問題是,在提取字段數據之后,您正在更新所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM