簡體   English   中英

使用 php 和 jquery 編輯表

[英]edit table with php and jquery

我正在嘗試使用 php 和 ajax 修改表格中單元格的內容。 頁面中的內容已更改但未在數據庫中注冊的問題。 這是頁面 index.php:

 <?php
 include 'connexion.php';
 $sql = 'SELECT * FROM liste_user_tbl';
 $result = mysql_query($sql) or die(__LINE__.mysql_error().$sql);

  ?>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html>
 <head>


<title>Modification "inline" de données</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>

<script>

$(function(){


 var message_status = $("#status");

 $("td[contenteditable=true]").blur(function(){

    var field_userid = $(this).attr("id") ;

    var value = $(this).text() ;

    $.post('test1.php' , field_userid + "=" + value, function(data){

        if(data != '')

        {

            message_status.show();

            message_status.text(data);



            setTimeout(function(){message_status.hide()},3000);

        }

       });

       });


   </script>
   </head>

 <body>
 <h1>Utilisateurs</h1>


 <table id="table-utilisateurs">
    <tr>
        <th>Nom</th>
        <th>Prénom</th>

    </tr>

    <?php
    while($user = mysql_fetch_assoc($result))
    {
    ?>
        <tr>
            <td  id="<?php echo $user['id']; ?>" contenteditable="true">
                <?php echo $user['nom']; ?>
            </td>

            <td  id="<?php echo $user['id']; ?>"  contenteditable="true">
                <?php echo $user['prenom']; ?>
            </td>



        </tr>
    <?php
    }
    ?>
  </table>

  </body>
  </html>

 <?php

 mysql_close();

 ?>

這是 test1.php:

  <?php
  if(!empty($_POST))

  {



    include "connexion.php";

    foreach($_POST as $field_name => $val)

    {

    //clean post values

    $field_userid = strip_tags(trim($field_name));

    $val = strip_tags(trim(mysql_real_escape_string($val)));



    //from the fieldname:user_id we need to get user_id

    $split_data = explode(':', $field_userid);

    $user_id = $split_data[1];

    $field_name = $split_data[0];

    if(!empty($user_id) && !empty($field_name) && !empty($val))

    {

        //update the values

        mysql_query("UPDATE liste_user_tbl SET $field_name = '$val' WHERE id   = $user_id") or mysql_error();

        echo "Updated";

    } else {

        echo "Invalid Requests";

    }

    }

    } else {

    echo "Invalid Requests";

     }
     ?>

這是我的桌子: 在此處輸入圖片說明

首先, $field_name未在您的代碼中定義,這就是為什么如果您啟用調試,查詢將產生錯誤的原因。其次,您的代碼很容易受到 SQL 注入的影響。 您按原樣使用用戶發布的數據,沒有進行任何過濾,這可能會導致整個數據庫數據丟失。 第三,您仍在使用程序化 php 和“老派”數據庫連接。 相反,您可以使用PDOPOO

使用 print_r($_POST);

接收post數據並顯示檢查post數據是否有問題

暫無
暫無

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

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