【问题标题】:How to update a database using textboxes so when a user clicks 'update' the changes are then implemented如何使用文本框更新数据库,以便在用户单击“更新”时实施更改
【发布时间】:2012-02-01 20:57:09
【问题描述】:

我对 PHP 和 MySQL 还是很陌生,现在我有一个网页,里面有几个文本框,显示我数据库中的数据。我想知道如何通过更改文本框来更新数据,以便当用户单击“更新”时,这些更改会在数据库中实现。

目前我有以下代码:

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("booking", $con);

$result = mysql_query("SELECT * FROM tblcompany");


$compDetails = mysql_fetch_array($result);

?>

这里是一些 HTML:

<div class="cp-controls-lrg left">
    <p class="controls-margin">Company Name</p>
    <input type="text" class="input-txt-med" value="<?php echo $compDetails['CompName'] ?>" id="txt-config-fax" value="" size="20">
</div>

<div class="cp-controls-lrg left">
    <p class="controls-margin">Company URL</p>
    <input type="text" class="input-txt-med button-space2" value="<?php echo $compDetails['CompURL'] ?>" id="txt-config-email" value="" size="50">
</div>

<div class="cp-button2 config-but-space right">
    <button name="btn-config-done" id="btn-config-done" class="btn-sml ui-button ui-state-default ui-button-text-only ui-corner-all btn-hover-anim btn-row-wrapper right cp-btn-margin">Done</button>
    <button name="btn-config-update" id="btn-config-update" class="btn-sml ui-button ui-state-default ui-button-text-only ui-corner-all btn-hover-anim btn-row-wrapper right cp-btn-margin">Update</button>
</div>

任何帮助将不胜感激!

【问题讨论】:

  • 你可以查看INSERTUPDATE mysql-statements。如果遇到困难,请尝试遵循一些指南并寻求更具体的帮助:)

标签: php html ajax database


【解决方案1】:

我从标签中假设您想使用 AJAX 来实现这一点。

我会首先尝试通过使用 POST 将表单发回来进行更新。 将您的 HTML 代码放入 form 标记并尝试将数据 POST 回 PHP 页面。

这里只是一个例子(Google/Bing 是你的朋友):

http://www.tizag.com/phpT/forms.php

http://www.freewebmasterhelp.com/tutorials/phpmysql/4

然后按照上面的建议查找插入和更新语句,并尝试对您的数据执行相同的操作。

AJAX 以类似的方式工作,在服务器端有一个处理器,唯一的区别是表单不是通过 POST(页面重新加载)提交,而是使用 JavaScript 提交。

我还会研究 jQuery 库来为您执行 AJAX 回发。

HTH

【讨论】:

    【解决方案2】:

    jQuery 非常适合 ajax。你可以在你的javascript文件whatever.js中使用类似的东西。

    $('#btn-config-update').click(function () {
        $.ajax({
            type : 'POST',
            url : 'http://whatever.com/handler.php',
            dataType : 'json',
            data: {
                companyname : $('#companyFieldID').val(),
                url : $('#companyURLID').val(),
            },
            success: function (data) {
                if (data.status == "Success") {
                    $('#id_of_div_to_replace_markup').html(data.markup);
                } else if (data.status == "Error"){
                    $('#optional_error_markup_container_div').html(data.markup);
                } else {
                      $('#optional_error_markup_container_div').html("<span id=formError>Unexpected Error</span>");
                }
            }
        });
    return false;
    });
    

    这里要注意的事项。在输入标记字段中使用 id='whateverid" 而不是 class="whateverclass" ,这样您就可以使用上面看到的 .val() 语句从输入字段中获取数据。jQuery 中的 # 引用是指一个唯一的 ID。

    return false 也会阻止页面刷新。 现在用于 PHP 方面。

    $sql_error_markup = "<h1>An unexpected error has occured.  Please try again later.</h1>";
    $success_markup = "<h2><p>Database has been updated!</p></h2>";
    
    $companyname = mysql_real_escape_string($_POST["companyname"]);
    $url = mysql_real_escape_string($_POST["url"]);
    
    //use your connection logic to get $con
    
    $sql="INSERT INTO tablename (company_field_name, url_field_name)";
    $sql.= " VALUES('$companyname','$lastname','$email')";
    
    if (!mysql_query($sql,$con)) {
        $return['markup'] = $sql_error_markup;
        $return['status'] = "Error";
        echo json_encode($return);
        die('Error: ' . mysql_error());
    }
    
    mysql_close($con);
    $return['status'] = "Success";
    $return['markup'] = $success_markup;
    echo json_encode($return);
    ?>
    

    注意事项 echo json_encode(array) 将正确响应 ajax 调用。这个 ajax 示例可以使用任何具有 id(在此示例中不是类)的 html 方法来交换标记。 mysql_real_escape_string 将有助于防止注入攻击。这种形式非常必要。不要忘记包含 jquery.versionwhatever.js 以使用您在上面看到的 $ 引用。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多