繁体   English   中英

当我尝试创建新表php时ajax调用失败

[英]ajax call fails when i try to create a new table php

想要将ajax请求发送到php以动态创建新表。 我有以下代码:

使用Javascript:

var file = $('#'+option_file_name.id).prop('files')[0];
var form_data = new FormData(); 
form_data.append('file', file);
form_data.append('column_name', option_file_name.id.slice(12));
send_ajax_request(form_data);

function send_ajax_request(pdata){
    console.log(pdata);
    $.ajax({
        url: "set_points_data.php",
        data: pdata,
        contentType: false,
        processData: false,
        dataType: "json",
        type: 'post',
        success: function (data) {
            console.log(data);
        },
        error: function(a,b,c){
            alert("something went wrong");
        }
    });
}

PHP脚本:

在data.php文件中,我连接到数据库并具有所有支持功能。

<?php
include 'data.php';

$data = null;

if(isset($_FILES)){
    $data = $_FILES;
    $type = (string)$_POST["column_name"];
    create_table($conn, $type);
    return_ajax("succes");
}else{
    return_ajax("error");
}

function create_table($conn, $name){
    send_sql($conn, "CREATE TABLE `".$name."` (
        options varchar(255));"
    );
}
?>

更新:

原来,如果我将以下代码更改为此,错误消失。 参见下面的新代码:

send_sql($conn, "CREATE TABLE testTable (
    options varchar(255)
);");

但这不是我想要的,我需要动态创建表。

每当我运行运行ajax请求时,我都会收到错误消息,说明出现了问题。 但是,当我运行不带ajax调用的php脚本时,它工作正常。 当我从ajax调用运行php脚本但没有创建表功能时,它也可以正常工作。 所以我不确定这里发生了什么。 希望如果没有让我知道这很清楚。

经过一些测试后,我发现ajax在执行create table语句后试图返回一些数据。 导致错误。 如果将其更改为以下内容。

if(isset($_POST)){
    $data = $_FILES;
    $db_name = $_POST["tblname"];
    return_ajax(create_table($conn, $db_name));
}else{
    return_ajax("error");
}

function create_table($conn, $name){
    send_sql($conn, "CREATE TABLE `".$name."` (
        options varchar(255)
    );");
    return "database created";
}

这会工作。 不知道会发生什么,但这可以修复ajax错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM