想要向php发送ajax请求以动态创建新表。我有以下代码:
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脚本但没有创建表函数时,它也可以正常工作。所以我不确定这里发生了什么。 如果不让我知道,希望这很清楚。
答案 0 :(得分:1)
在做了一些测试后,我发现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错误。