До этого цикла foreach
$_POST['encounterName']
содержит предопределенное имя. Внутри цикла его значение изменяется на «.json», поэтому первая строка в file_put_contents читает «.json.json». Также $_POST['basicTrainingSectionSlide']
, $_POST['basicTrainingContentHeader']
и $_POST['basicTrainingContentText']
теряют свои значения. После цикла foreach
все значения возвращаются к норме. Что здесь происходит?
$i = 0;
$j = 0;
foreach($_POST['Sections'] as $order){
if(strcmp($order, "Section") == 0){
file_put_contents($_POST['encounterName'].".json", "\t\t[\n", FILE_APPEND);
file_put_contents($_POST['encounterName'].".json", "\t\t\t\"Section\",\n", FILE_APPEND);
file_put_contents($_POST['encounterName'].".json", "\t\t\t\"".$_POST['basicTrainingSectionSlide'][$i]."\"\n", FILE_APPEND);
file_put_contents($_POST['encounterName'].".json", "\t\t],\n", FILE_APPEND);
$i++;
}
else if(strcmp($order, "Text") == 0){
file_put_contents($_POST['encounterName'].".json", "\t\t[\n", FILE_APPEND);
file_put_contents($_POST['encounterName'].".json", "\t\t\t\"Text\",\n", FILE_APPEND);
file_put_contents($_POST['encounterName'].".json", "\t\t\t\"".$_POST['basicTrainingContentHeader'][$j]."\"\n", FILE_APPEND);
file_put_contents($_POST['encounterName'].".json", "\t\t\t\"".$_POST['basicTrainingContentText'][$j]."\"\n", FILE_APPEND);
file_put_contents($_POST['encounterName'].".json", "\t\t],\n", FILE_APPEND);
$j++;
}
}
Это то, что массив $ _POST содержит:
array(11) { ["encounterName"]=> string(8) "Violence" ["encounterHint"]=> string(0) "" ["basicTrainingSectionSlide"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "6" } ["basicTrainingContentHeader"]=> array(2) { [0]=> string(1) "2" [1]=> string(1) "4" } ["basicTrainingContentText"]=> array(2) { [0]=> string(1) "3" [1]=> string(1) "5" } ["contextText_1"]=> string(0) "" ["contextText_2"]=> string(0) "" ["contextText_3"]=> string(0) "" ["contextText_4"]=> string(0) "" ["contextText_5"]=> string(0) "" ["submit_form"]=> string(6) "Submit" } array(11) { ["encounterName"]=> string(8) "Violence" ["encounterHint"]=> string(0) "" ["basicTrainingSectionSlide"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "6" } ["basicTrainingContentHeader"]=> array(2) { [0]=> string(1) "2" [1]=> string(1) "4" } ["basicTrainingContentText"]=> array(2) { [0]=> string(1) "3" [1]=> string(1) "5" } ["submit_form"]=> string(6) "Submit" }
Некоторые добавляют информацию: -The форма, которая заполняется посылает свои почтовые данные в отдельный файл PHP для обработки. -The $_POST['Sections']
передается через эту функцию:
function returnValues() {
$.ajax({
type: "POST",
url: "final.php",
data:{ Sections: $sectionOrder },
success: function(data){
console.log(data);
}
})
}
из .js файла onsubmit в виде тега.
ну, почему это '[$ i]' в первом блоке и '[$ j]' в другом? и почему вы строите json вручную? это просто глупо ... есть 'json_encode()', чтобы сделать все это для вас автоматически, и много способов прет-печатать то, что он создает –
Это должен быть очень конкретный заказ, я не могу просто сбросить вещи. Но да, я посмотрю на квадратные брекеты. Мне нужно это в первую очередь. –
Размер разделов [] равен $ i + $ j, но они поступают в случайных порядках в зависимости от значения в $ order. –