Помогите объединить два PHP файла

D
На сайте с 28.06.2008
Offline
1114
518

Есть форма настроек юзера в личном кабинете. Часть функционала была в другом файле, хочу объединить

Файл 1

<?php defined('_JEXEC') or die('Restricted access'); ?>
<form method="post" action="/index.php" enctype="multipart/form-data">
.....
тут много ХТМЛ
.....
<input type="submit" name="submit" id="submit" value="Сохранить">
<input type="hidden" name="option" value="com_s">
<input type="hidden" name="view" value="config">
<input type="hidden" name="format" value="json">
<input type="hidden" name="task" value="dSave">
</form>

<script>
function offerSpec() {
if(!jQuery('#specialisations_offer').val().trim().length) {
return;
}

jQuery.ajax({
type: 'POST',
url: '/index.php',
dataType: 'json',
timeout: 5000,
data: {
option: 'com_s',
view: 'config',
format: 'json',
task: 'addSpecialisation',
name: jQuery('#specialisations_offer').val()
},
success: function (data) {
jQuery('#specialisations_offer').val('');
jQuery('#specialisations_done').show();

setTimeout(function() {
jQuery('#specialisations_done').hide();
}, 10000);
}
});
}


jQuery.noConflict();
jQuery(document).ready(function () {

function filter_specialisations(query) {
jQuery('#specialisations div.spec').each(function () {
if (jQuery(this).find('span').text().search(new RegExp(query, 'i')) === 0) {
jQuery(this).show();
} else {
jQuery(this).hide();
}
});
}

filter_specialisations('');

jQuery('#specialisations_name').on('keyup', function () {
filter_specialisations(jQuery(this).val());
});

jQuery(document).on("click", ".del-photo", function (e) {
e.preventDefault();
// var el = jQuery(this).parent().parent().parent();
var id = jQuery(this).attr("data-id");
jQuery.ajax({
type: 'POST',
url: '/index.php',
dataType: 'json',
timeout: 5000,
data: {
option: 'com_s',
view: 'config',
format: 'json',
task: 'delPhoto'
},
success: function (data) {
jQuery('#photo').html('<input type="hidden" name="nophoto" value="1"><input type="file" name="file" id="file"> <span class="loader"></span>');
}
});
});

jQuery(document).on("submit", "form", function (e) {
e.preventDefault();

jQuery.ajax({
type: 'POST',
url: '/index.php',
dataType: 'json',
enctype: 'multipart/form-data',
timeout: 5000,
cache: false,
contentType: false,
processData: false,
data: new FormData(this),
beforeSend: function () {
jQuery('.loader').show();
},
uploadProgress: function (event, position, total, percentComplete) {
jQuery('#submit').val('Сохранить ' + percentComplete + '%');
},
success: function (data) {
if (data.status == 1) {
jQuery('#msg').attr('class', 'ui-state-highlight ui-corner-all').html(data.msg).show();
}
if (data.status == 2) {
jQuery('#msg').attr('class', 'ui-state-error ui-corner-all').html(data.msg).show();
jQuery('#password').val('');
}
if (data.status > 0) {
scrollUp();
}
if (data.src) {
jQuery('#photo').html('<img id="photo" src="/images/s/' + data.src + '" align="left"> <a href="#" class="del-photo"><img src="/media/com_s/images/del.png" style="width: 12px;"></a>');
}
jQuery('#submit').val('Сохранить');
jQuery('.loader').hide();
}
});
});
});

function scrollUp() {
var curPos = jQuery(document).scrollTop();
var scrollTime = curPos / 1.73;
jQuery("body,html").animate({"scrollTop": 0}, scrollTime);
}
</script>

Файл №2

<?php defined('_JEXEC') or die('Restricted access'); ?>
<form method="post" action="/index.php" enctype="multipart/form-data">
.....
тут много ХТМЛ
.....
<input type="submit" name="submit" id="submit" value="Сохранить">

<input type="hidden" name="option" value="com_s">
<input type="hidden" name="view" value="config">
<input type="hidden" name="format" value="json">
<input type="hidden" name="task" value="receptionSave">
</form>

<script>
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery(document).on("submit", "form", function(e) {
e.preventDefault();

jQuery.ajax({
type: 'POST',
url : 'index.php',
data: jQuery(this).serialize(),
success: function(data) {
if(data.status == 1) {
jQuery('#msg').attr('class', 'ui-state-highlight ui-corner-all').html(data.msg).show();
}
if(data.status == 2) {
jQuery('#msg').attr('class', 'ui-state-error ui-corner-all').html(data.msg).show();
}
if(data.status > 0) {
scrollUp();
}
}
});
});
});

function scrollUp() {
var curPos = jQuery(document).scrollTop();
var scrollTime = curPos/1.73;
jQuery("body,html").animate({"scrollTop":0}, scrollTime);
}
</script>

Объединить хтмл труда не стаставляет, я помещаю хтмл вторго файла внутрь формы из первого файла, все рабоатет кроме сохранения.

кнопка сохранить

<input type="submit" name="submit" id="submit" value="Сохранить">

Не сохраняет данные второй формы.

Какой тут может быть нюанс?

sergv
На сайте с 13.04.2006
Offline
441
#1
Dram:
Какой тут может быть нюанс?

Input'ы у обеих форм объединенного файла имеют одинаковые названия.

https://REGHOME.ru - регистрация и продление доменов от 169₽ в российских и международных зонах по честным ценам без звездочек. (R01, WebNames, UK2). Принимаем Ю-Money, Visa, MasterCard, Мир
D
На сайте с 28.06.2008
Offline
1114
#2

Я Input'ы втого файла не переносил. Хотел заставить Input' первого файла сохранять все поля формы.

А он сохраняет только свое, поля второй формы сохранять не хочет.

Из второго файла я забрал только ХТМЛ + немного пхх которые были ВНУТРИ формы. Я не переносил нижний JS и Input'ы

sergv
На сайте с 13.04.2006
Offline
441
#3

Ну покажите тогда объединенный файл, иначе непонятно, но есть подозрение, что у вас там 2 разные формы и обрабатывая первую, вы ждете обработки и второй.

D
На сайте с 28.06.2008
Offline
1114
#4

Вот что я взял из второй формы и поместил между такими же полями в первую

<div class="d d-reception">Онлайн запись</div>
<div class="colLeft">
<label>Включить/Отключить Запись</label>
<input type="checkbox" value="1" name="status"<?php echo (!empty($this->reception->status))?' checked="checked"':''; ?>>

<label>Ваш номер телефона</label>
<select name="phone_country">
<option value="7"<?php echo (!empty($this->reception->phone_country) && $this->reception->phone_country == 7)?' selected="selected"':''; ?>>RU +7</option>
<option value="38"<?php echo (!empty($this->reception->phone_country) && $this->reception->phone_country == 38)?' selected="selected"':''; ?>>UA +38</option>
<option value="375"<?php echo (!empty($this->reception->phone_country) && $this->reception->phone_country == 375)?' selected="selected"':''; ?>>BR +375</option>
<option value="373"<?php echo (!empty($this->reception->phone_country) && $this->reception->phone_country == 373)?' selected="selected"':''; ?>>MD +373</option>
</select>
<input type="text" name="phone" maxlength="10" placeholder="Номер телефона" value="<?php echo (!empty($this->reception->phone))?$this->reception->phone:''; ?>" class="ui-corner-all postform" style="width: 132px;">

<label>Стоимость работы в RUB</label>
<input type="text" name="price" value="<?php echo (!empty($this->reception->price))?$this->reception->price:''; ?>" placeholder="0" class="ui-corner-all postform">

<div id="adress">
<label>Адрес ремонта</label>
<input type="text" name="adress[]" value="<?php echo (!empty($this->receptionLocations[0]->geocode))?$this->receptionLocations[0]->geocode:''; ?>" placeholder="г. Москва, ул. Ленина 5" class="ui-corner-all postform">
<input type="text" name="adress[]" value="<?php echo (!empty($this->receptionLocations[1]->geocode))?$this->receptionLocations[1]->geocode:''; ?>" placeholder="г. Москва, ул. Ленина 5" class="ui-corner-all postform">
<input type="text" name="adress[]" value="<?php echo (!empty($this->receptionLocations[2]->geocode))?$this->receptionLocations[2]->geocode:''; ?>" placeholder="г. Москва, ул. Ленина 5" class="ui-corner-all postform">
</div>
</div>

Если меняю в этих полях что-то оно не сохраняется, а в других сохраняется

SeVlad
На сайте с 03.11.2008
Offline
1609
#5

Dram, блин, столько на форуме, пора бы уже знать,что код нужно помещать в [code][/code], а не в цитаты.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
D
На сайте с 28.06.2008
Offline
1114
#6

Эти теги часто ставят смайлики вместо кода, поэтому их и не использую

SeVlad
На сайте с 03.11.2008
Offline
1609
#7
Dram:
Эти теги часто ставят смайлики вместо кода, поэтому их и не использую

Найди 10 отличий между [php] и [code] и используй последний. Нечитабельные портянки мало кому интересны.

D
На сайте с 28.06.2008
Offline
1114
#8

По делу есть чего или так и будем красоту наводить?

SeVlad
На сайте с 03.11.2008
Offline
1609
#9
Dram:
По делу есть чего или так и будем красоту наводить?

Я тебе по делу и сказал. Не понял? Я повторю - такие портянки осилят только очень сильные духом :).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий