0

これは完全に機能しているjQuery/Ajax編集MySQLテーブルスクリプトです。

他のGridEditスクリプトのように、「入力」フィールド(「a」ではない)を使用するにはどうすればよいですか?

そして、可能であれば(クリックしたときにのみ「入力」になり、そうでない場合は(たとえば)「スパン」になり、別の場所をクリックしたときに)データを保存します。

edit.php:

<?php
$connect = mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');

if(isset($_GET['action'])) {
    $id = $_GET['id'];
    $field = $_GET['field'];
    $value = $_GET['value'];
    mysql_query("UPDATE posts SET $field='$value' WHERE id='$id' LIMIT 1");
}
?>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>Editable</title>
        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript">
        function Editable() {
            $.ajax({
                url: 'edit.php',
                method: 'GET',
                data: {
                    action: 'update',
                    id: $(this).attr("db_id"), 
                    field: $(this).attr("db_field"), 
                    value: $(this).attr("value")
                },
                success: function() {
                    alert("Готово!");
                }
            });
            return false;
        }
        jQuery(document).ready(function() {
            $(".Update").click(Editable);
        });
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td>ID</td>
                <td>Title</td>
            </tr>
            <tr>
                <td>1</td>
                <td>test1 <a href="#" class="Update" db_id="1" db_field="title" value="test1">Update 1</a></td>
            </tr>
            <tr>
                <td>2</td>
                <td>test2 <a href="#" class="Update" db_id="2" db_field="title" value="test2">Update 2</a></td>
            </tr>
            <tr>
                <td>3</td>
                <td>test3 <a href="#" class="Update" db_id="3" db_field="title" value="test3">Update 3</a></td>
            </tr>
        </table>
    </body>
</html>
4

1 に答える 1

0

あなたが試すことができます

$('a')
  .on('focus', function(){
      var $this = $(this);
      $this.html('INPUI TYPE HTML');
   })
  .on('blur', function(){
      // CALL AJAX TO UPDATE DB FIELD & RETURN BACK THE A TAG
  });

これは単なるロジックであり、ブラウザでテストしていません。</ p>

于 2013-02-19T07:10:59.283 に答える