在 DIV 中显示回声


Show echo inside a DIV

我遇到了一个非常烦人的问题,我不知道我做错了什么。它(再次)与将页面加载到 DIV 中有关。

我制作了一个表格,可用于将信息更新到数据库中。此表单和 PHP 代码位于一个文件中,并加载在一个 DIV 中。当我访问加载到 DIV 本身的页面时,一切正常,数据库正在按预期更新。

但是,当页面加载到页面中时。当我按提交时,没有任何反应。我想要发生的是,回显,无论是"成功!"还是"错误!",都显示在与页面加载到的同一 DIV 中。这是我的代码,希望有人能帮忙!有些变量是荷兰语,对不起。

 if(isset($_POST['submit']))  {
                     include "database.php";
                     session_start();
                     $id = $_POST['id'];
                     $titel = $_POST['titel'];
                     $text = $_POST['text'];
                     $categorie = $_POST['categorie'];
                     $auteur = $_SESSION['sess_loginnaam'];
                     $laatst_aangepast = date("Y-m-d H:i:s");
                     $sql="UPDATE paginas SET id='$id', titel='$titel', text='$text', categorie='$categorie', auteur='$auteur', laatst_aangepast='$laatst_aangepast' WHERE id='$id'";
                     $result=mysql_query($sql);
                     if($result){
                     echo "Success!";
                     ?>
                     <META HTTP-EQUIV="refresh" content="2;URL=index.php">
                      <?php }
                     else {
                         echo "Mislukt!";
                     }
                 }
                 else {
                     include "database.php";
                     $id = $_GET['id'];
                     $sql="SELECT * FROM paginas WHERE id='$id'";
                     $result=mysql_query($sql);
                     $rows=mysql_fetch_array($result);
                     <form name="form1" method="post" action="">
                     ID:
                     <input name="id" type="text" id="id" value="<? echo $rows['ID']; ?>"     size="2"></div> Titel:
                     <input name="titel" type="text" id="titel" value="<? echo $rows['titel']; ?>" size="50%"> Categorie: <select name="categorie"><option    value="Paginas">Pagina's</option>
                     </select>
                     Tekst:
                     <textarea name="text" type="text" id="text" rows="31" cols="79"><?                echo $rows['text']; ? ></textarea>
                     <button type="submit" name="submit">Edit!</button>
                     </form>

这是我用来将此页面加载到 DIV 中的代码:

$("#edit").on('click',function(){
$('#content').load($(this).attr('href'));
  });

那么我怎样才能设法将回声显示到同一个 DIV 中呢? :)

$.load等同于$.get而您的php代码检测到$_POST,这是没有响应的方式。

您可以将 js 代码更改为

$("#edit").on('click',function(){
    $.post($(this).attr('href'), YOUR_FORM_DATA_HERE, function(data){
        //update your page here with response
    });
});

请参阅 $.load - jQuery Doc