0

我有以下脚本。用户将传递一个数值,例如 123 作为 URL 中的参数,应用程序将从 MySQL 加载/获取该值并将其显示在文本区域中。

例如,在 URL 中输入“example.com/index.php?id=123”将从数据库中提取第 123 条记录并将其显示在文本区域中。一切似乎都在工作,但我想在提交表单时显示“源”表的最后一行/ID。所以,而不是显示“已保存!” 在弹出窗口中,它应该显示类似“124”(或最后更新的行/编号)的内容。

索引.php:

<?php
include('connect-db.php');
if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0)
{
    $id = $_GET['id'];
    $result = mysql_query("SELECT content FROM source WHERE id=$id") or die(mysqli_error()); 
    $row = mysql_fetch_array($result);

       if($row)
    {
     $submit_date = date("Ymd");
     $content = $row['content'];                    
    }

}
?>
<!DOCTYPE html>
    <html>
      <head>
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>        

     <script type="text/javascript"> 
          $(document).ready(function(){
                $("#myform").submit( function () {    
                  $.post(
                   'submit.php',
                    $(this).serialize(),
                    // 
                   // show the last id here!
                   //
                        function(data){ alert("Saved!"); }
                  );
                  return false;   
                });   
            });
    </script>      

      </head>
      <body>

    <div id="header" >

    <form action="submit.php" method="post" id="myform">
    <textarea id="editor" name="editor" id="editor"><?php echo $content; ?></textarea>
    <br/>
    <input type="submit" name="submit" value="Submit" id="submit"/>

    </form>

    </div>

      </body>
    </html>

提交.php:

<?php
include('connect-db.php');

$submit_date = date("Ymd");
$content = mysql_real_escape_string(htmlspecialchars($_POST['editor']));
$ip_address = $_SERVER['REMOTE_ADDR'];

if ($content != '') { 
// 
// Show the variable (last_id) value in the JavaScript above!
//
$last_id = mysql_insert_id();  

mysql_query("INSERT INTO source (submit_date, ip, content) values('$submit_date','$ip_address','$content')") or die(mysql_error());
mysql_close($connection);
}
?>

连接数据库:

<?php
 $server = 'localhost';
 $user = 'domdom';
 $pass = 'password@123';
 $db = 'domdom';

 $connection = mysql_connect($server, $user, $pass) or die ("Could not connect to server ... \n" . mysql_error ());
 mysql_select_db($db) or die ("Could not connect to database ... \n" . mysql_error ());
?>

请注意,我不需要任何关于 PDO 或 MySQLi 的建议,这在此时并不重要。但是,欢迎任何有关改进安全性/SQL 查询等的建议。谢谢。

4

1 回答 1

0

我将尝试分两部分回答:

[1] PHP端:在“isset($_GET['id'])”部分,只返回你要填写的文本区域的内容。比如说,在你的数据库中,123 -> 'Friday'。只需返回字符串“星期五”。

[2] 客户端:不要“提交”表格。调用一个 JS 函数,并在其中创建一个 XmlHttpRequest,并将请求作为 AJAX 请求发送到服务器。当您获得返回值时,检查它并填充您的 HTML 文本区域。

如果您认为此方法适合您并且需要更多详细信息,请告诉我。我在我的许多网站上都这样做。

于 2013-03-10T03:06:49.117 回答