cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Tambah berbilang keping data yang disusun ke dalam objek dan hantar ke php. Bagaimanakah php menerima parameter dan menghuraikannya ke dalam data biasa dan memasukkannya ke dalam jadual?

Saya membuat jadual untuk menambah, memadam, mengubah suai dan membuat pertanyaan Terdapat banyak data baharu yang saya gunakan sekarang. Hantarkannya ke php dalam bentuk parameter yang dilampirkan, dan kemudian php menggunakan $_GET[''] untuk menerima parameter yang diluluskan. Ini adalah cara untuk menambah data baru Apa yang saya ingin tanyakan ialah, jika terdapat banyak data baharu, bagaimanakah PHP menerima parameter yang diluluskan oleh parsing?
Ini kod saya?
php:

//新增方法
    function add_row(){
        /*获取从客户端传过来的数据*/
        $userName = $_GET['user_name'];
        $userAge = $_GET['user_age'];
        $userSex = $_GET['user_sex'];
        
        $sql = "INSERT INTO t_users (user_name,user_age,user_sex) VALUES ('$userName','$userAge','$userSex')";
        if(query_sql($sql)){
            echo "ok!";
        }else{
            echo "新增成功!";
        }
    }

    function query_sql(){
        $mysqli = new mysqli("127.0.0.1", "root", "root", "crud");
        $sqls = func_get_args();
        foreach($sqls as $s){
            $query = $mysqli->query($s);
        }
        $mysqli->close();
        return $query;
    }

js:

$(function() {
                
    $('#save').click(function(){
        addData();
    });
});
function addData(){
    var userName = $('#userName').val();
    var userAge = $("#userAge").val();
    var userSex = $('#user-sex').val() == '0' ? '男' : '女';
                
    var addUrl = "./php/data.php?action=add_row&user_name=" + userName + "&user_age=" + userAge + "&user_sex=" + userSex;
                
                $.ajax({
                    type:"post",
                    url:addUrl,
                    dataType:'json',
                    contentType:'application/json;charset=utf-8',
                    success:function(data){
                        console.log("success");
                    },
                    error:function(data){
                        console.log("data");
                        //添加成功后隐蒧modal框并重新加载页面
                        setTimeout(function(){
                            $('#exampleModal').modal('hide');
                        },500);
                        setTimeout(function(){
                            //新增成功后,重新加载数据
                            searchData();
                        },700);
                    }
                });
            }

Anda mungkin tidak memahami perkara yang ditulis di atas. Apa yang saya ingin nyatakan ialah jika kod PHP kekal tidak berubah, semua yang berubah adalah organisasi data baharu dalam kaedah JS ini yang perlu dikemas kini, Dengan cara ini, saya menyusun berbilang keping data ini ke dalam objek dan menghuraikan objek ke dalam rentetan dan menyerahkannya kepada php. Jadi bagaimana php ini menghuraikan data?

function addData(){
                var userName = $('#userName').val();
                var userAge = $("#userAge").val();
                var userSex = $('#user-sex').val() == '0' ? '男' : '女';
                
                /*var addUrl = "./php/data.php?action=add_row&user_name=" + userName + "&user_age=" + userAge + "&user_sex=" + userSex;*/
                var addUrl = "./php/data.php?action=add_row";
                var addData = {
                    'user_name':userName,
                    'user_age':userAge,
                    'user_sex':userSex
                };
                
                var jsonData = JSON.stringify(addData);
                
                $.ajax({
                    type:"post",
                    url:addUrl,
                    data:jsonData,//传给php
                    dataType:'json',
                    contentType:'application/json;charset=utf-8',
                    success:function(data){
                        console.log("success");
                    },
                    error:function(data){
                        console.log("data");
                        //添加成功后隐蒧modal框并重新加载页面
                        setTimeout(function(){
                            $('#exampleModal').modal('hide');
                        },500);
                        setTimeout(function(){
                            searchData();
                        },700);
                    }
                });
            }

Sila berikan saya beberapa jawapan, terima kasih banyak!

阿神阿神2769 hari yang lalu547

membalas semua(7)saya akan balas

  • 黄舟

    黄舟2017-05-16 13:01:35

    Untuk operasi baharu, gunakan kaedah POST Ajax menghantar data json(a:'',b:'',c:''}) dan selepas php menerimanya, jsondecode($_POST['data'] )

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:01:35

    Letakkan semua parameter dalam nombor json dan hantar ke latar belakang: {'username': xxx, 'age': xxx}, mengikut komen dan logik kod anda, kod tersebut harus ditulis dengan berjaya dan bukannya ralat

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 13:01:35

    Saya tidak faham apa yang anda katakan Ajax mengembalikannya terus selepas menerimanya, dan lalai anda ialah dataType:'json', yang bermaksud bahawa selagi data yang dikembalikan dalam php tidak dalam format json, ralat akan berlaku. dilaporkan. Lihat di atas //echo "Tambah berjaya!"; Ini secara langsung akan menyebabkan anda melaporkan ralat ajax.

     if(query_sql($sql)){
                //echo "ok!";
                $r['code']=0;
                $r['msg']='ok!';
            }else{
                //echo "新增成功!";
                $r['code']=1;
                $r['msg']='新增成功!';
            }
            exit(json_encode($r));

    balas
    0
  • PHPz

    PHPz2017-05-16 13:01:35

    Syarat untuk berjaya ialah (xmlHttp.readyState == 4) && (xmlHttp.status == 200)
    Lihat sama ada kod status yang dikembalikan oleh alamat yang anda minta ialah 200?

    Jika terdapat banyak parameter, anda boleh terus menetapkan $_GET kepada pembolehubah, kerana $_GET ialah tatasusunan.

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:01:35

    Terima tatasusunan $_GET dan kemudian lintasi

    balas
    0
  • 为情所困

    为情所困2017-05-16 13:01:35

    Gunakan POST

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:01:35

    1. Kaedah penyerahan ajax ialah teyp: "post", tetapi parameter yang diterima oleh php ialah $_GET
    2 Format data yang diterima oleh ajax ialah dataType: 'json', tetapi hasil yang dikembalikan oleh php ialah teks.
    3.ajax request format kandungan contentType:'application/json;charset=utf-8', data yang diminta mestilah rentetan json Jika anda menggunakan php untuk menerimanya di latar belakang, anda boleh menggunakan $data = file_get_contents(" php://input "); json_decode($data, true), iaitu parameter permintaan. (Empat Jenis Kandungan Biasa dalam HttpRequest (pemindahan))
    4.sql perlu dilindungi daripada suntikan

    balas
    0
  • Batalbalas