Javascript PHP POST:从数组动态设置数据变量
大家好,我对PHP和AJAX以及所有这些好东西都很陌生,我对如何从这里开始编写代码感到有点困惑 我有一个表单正在被发送,我有一个数组(子类别),其中包含表单标签以检索字段的值。字段和值是根据用户上传的文本文件动态创建的,因此我无法知道它们是什么Javascript PHP POST:从数组动态设置数据变量,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,大家好,我对PHP和AJAX以及所有这些好东西都很陌生,我对如何从这里开始编写代码感到有点困惑 我有一个表单正在被发送,我有一个数组(子类别),其中包含表单标签以检索字段的值。字段和值是根据用户上传的文本文件动态创建的,因此我无法知道它们是什么 var arrayLength = subcategories.length; for (var i = 0; i < arrayLength; i++) { var eachfield = subcategories[i]; //Do s
var arrayLength = subcategories.length;
for (var i = 0; i < arrayLength; i++) {
var eachfield = subcategories[i];
//Do something
//@C: selector is working fine, cleaning input
var eachfield = $('#' + eachfield).val().trim();
//push the appropriate values with the fixed stuff to a new array
values.push(eachfield);
}
我不太确定如何将这两种方法结合起来,部分原因可能是因为对POST和AJAX调用感到困惑,而且还没有那么好
编辑:看起来我的问题有点不清楚(对不起,第一篇博文lol),我正在尝试动态推送从HTML表单字段中获取的值。问题在于表单的生成取决于用户选择上传到站点的内容(因此,字段和表单都是如此。我的最终目标是让用户能够根据他们上传的文本文件编辑动态生成的表单,并能够在点击提交按钮后在GUI上编辑后生成新的文本文件。如果表单是静态的,我可以这样做,但如果我不这样做,我很难想出如何做知道表单将包含什么内容
我正在尝试创建我的数据对象,以便在AJAX调用中使用它。下面是一些PHP代码,如果变量是静态的,我将在下一步中使用这些代码:
if(isset($_POST['submitbtnclicked']) && $_POST['submitbtnclicked'] == 'submitted') {
//new instance of model for use
$model = new model();
$dimitypedata = $_POST['dimitypedata'];
$densitydata = $_POST['densitydata'];
$velocitydata = $_POST['velocitydata'];
$temperaturedata = $_POST['temperaturedata'];
为了得到准确的答案,我们需要看看“子类别”数组是什么样子的 如果我理解正确,您希望将值放在对象中而不是数组中(值)。因此第一部分如下所示:
var data = {};
var arrayLength = subcategories.length;
for (var i = 0; i < arrayLength; i++) {
//notice that now field name and field value go in separate variables
var fieldName = subcategories[i];
//@C: selector is working fine, cleaning input
var fieldValue = $('#'+eachfield).val().trim();
//push the appropriate values with the fixed stuff to a data object
data[fieldName] = fieldValue;
}
//and then you send your gathered data
//using the data and sending it through a post with promise handling
$.ajax({
type: 'POST',
url: "controller.php",
data: data,
success: function(response) {
//alert("worked");
//console.log(response);
alert(response);
},
error: function() {
alert("There was an error submitting the information");
}
});
var data={};
var arrayLength=子类别。长度;
对于(变量i=0;i
如果要使用“值”变量生成“数据”对象,可以执行以下操作:
values = []; // here your values collected previously
var data = {};
for (var key in values){
data[key] = values[key];
}
//now you can use your data in AJAX
到底是什么问题?我们需要知道如何提供帮助。首先是您的PHP代码?其次是您希望从PHP接收什么类型的数据?@Kyle我对问题进行了编辑,使其更加清晰。问题是,因为表单是动态生成的,所以我不知道字段和值是什么(或者有多少字段和值)因此,我需要一种方法将它们推送到动态生成的数据对象。我知道如何静态地这样做,但因为表单是动态生成的,所以对象也应该是动态的,这就是我丢失的地方。@JoseMarques不完全是我的第一个否,但我以前没有处理过太多动态的事情。我正在尝试提取一些文本/数字表单中的值,并将它们放入新的文本文件中。我编辑了我的问题,可能有助于澄清问题。如果我理解,您希望发送多个值通过ajax在您的阵列中?哇,我不敢相信解决方案会这么简单!我觉得有点傻。谢谢!
values = []; // here your values collected previously
var data = {};
for (var key in values){
data[key] = values[key];
}
//now you can use your data in AJAX