Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thêm giá trị foreach vào Ajax

Nếu tôi hiểu đúng, bạn có nghĩa là bạn muốn chọn một mục từ danh sách các mục trong bảng A và nó sẽ hiển thị trong bảng B. Sau đó, bạn muốn nhấp vào nút gửi trong bảng B để lưu các mục đã chọn từ Bảng A?

Đây là giải pháp:

Vui lòng đặt tên tệp này là test.php

<?php
/**
 * Created by PhpStorm.
 * User: SQ05
 * Date: 06/01/2017
 * Time: 06:31 PM
 */
//Note that data is a typical example of data u gotten from DB. so make sure u push all $row into an array
//such that u create something of this nature eg
// $data=array();
// $i=0;
//while($row=mysql_fetch_assoc($query)){
//$data[$i]=$row;
//$i++;
//}
// this will then create data of this nature below,
$data=array(
    array('id'=>1,'name'=>'Loveth','age'=>23,'phone'=>'9889087455'),
    array('id'=>2,'name'=>'Susan','age'=>51,'phone'=>'787987455'),
    array('id'=>3,'name'=>'Precious','age'=>13,'phone'=>'98989087455'),
    array('id'=>4,'name'=>'Hannah','age'=>21,'phone'=>'987087455'),
    array('id'=>5,'name'=>'Kenneth','age'=>43,'phone'=>'569087455'),
);

?>
<div style="float:left;width:50%">
    THE LIST OF ALL ITEMS
    <table>
    <tr>
        <td>Name</td>
        <td>Age</td>
        <td>Phone</td>
        <td>Action</td>
    </tr>
    <?php
    $i=0;
    for ($i=0;$i<count($data);$i++) {
        $item=$data[$i];
        ?>
        <tr>
            <td><?php echo $item['name'];?></td>
            <td><?php echo $item['age'];?></td>
            <td><?php echo $item['phone'];?></td>
            <td><button onclick='addToList(<?php echo json_encode($item);?>);'>Add</button></td>
        </tr>
    <?php
    }
    ?>
</table>
</div>

<div style="float:left; width:50%">
  THE ITEM TO BE SAVED
<div id="showToSave"></div>
    </div>

<script src="bower_components/jquery/dist/jquery.js"></script> <!--Please install jquery base on ur own directory path-->
<script>
    var listToSave=[]; // must be global

    /**
     * The add to list function that process data and add to list
     * @param data
     */
   var addToList= function(data){
        var lenData=listToSave.length;
          if(lenData>0){
              //this is used to avoid duplicate
             for(var j=0;j<lenData;j++){
                 if(data.id==listToSave[j].id) return;
             }
          }
        listToSave.push(data);
        console.log(listToSave);
        document.getElementById('showToSave').innerHTML=createData(listToSave);

    };

 var createData= function (data) {
        var len=data.length;
     var tableToSave="<table><tr><td>Name</td> <td>Age</td> <td>Phone</td> <td>Action</td></tr>";
     var i;
        for(i=0;i<len;i++){
          content=data[i];
        tableToSave+="<tr><td>"+content.name+"</td><td>"+content.age+"</td><td>"+content.phone+"</td><td>" +
            "<button onclick='deleteFromSave("+i+")'>Delete</button></td></tr>";
        }
     tableToSave+="</table><div><button onclick='saveData()' type='button'>Save</button></div>";
     return tableToSave;
    };


    /**
     * This is use to delete data added locally
     */
    var deleteFromSave=function (index) {
        listToSave.splice(index,1); //this is use to delete from list to save
        document.getElementById('showToSave').innerHTML=createData(listToSave); //to rerender after delete
    };

    /**
     * This is use to submit data
     */
    var saveData=function () {
        console.log('thjis=',listToSave);
        $.ajax({
            type: "POST",
            url: "getData.php",
            data: {list : JSON.stringify(listToSave)},
            success: function(resp){
                console.log('response=',resp);
            }
        });
    };
</script>

Vui lòng đặt tên này là getData.php để xử lý việc gửi danh sách dữ liệu đã thêm bằng cách sử dụng phương pháp chèn nhiều giá trị.

    <?php
    /**
     * Created by PhpStorm.
     * User: SQ05
     * Date: 06/01/2017
     * Time: 07:28 PM
     */
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $data = json_decode(stripslashes($_POST['list'])); //the data here can now be used to create a multiple value insert to ur mysql db.
        print_r(json_encode($data)); // this is used to send response back to ur page if using array buh echo if string
    }



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySQL bị treo và phải giết quá trình

  2. Sử dụng bí danh cột trong mệnh đề WHERE của truy vấn MySQL tạo ra lỗi

  3. LỖI! Máy chủ thoát mà không cập nhật tệp PID (/usr/local/var/mysql/`username`.lan.pid)

  4. $ result =mysql_query ()

  5. Sắp xếp một bảng MySQL theo hai cột