Я пытаюсь вызвать переменную с именем $ index, которая подсчитывает номер итерации foreach внутри функции. В этой же функции я вызываю другую функцию, которая должна получить значение $ index в конце foreach.
<?php
$index = 0;
function edit_profile_form() {
global $index;
$current_user_id = get_current_user_id();
$data = get_user_meta ($current_user_id);
if (isset($_POST['button2'])) {
delete_user_meta($current_user_id, 'experiences');
}
if(isset($_POST['button1'])) {
save_extra_profile_fields($current_user_id, $index);
};
$experiences = get_user_meta($current_user_id, 'experiences', true);
?>
[...SOME CODE HERE...]
Далее в файле (но всегда в функции) я вызываю это:
if (!empty($experiences)) {
foreach ($experiences as $key) {
?>
<div class="past_experience">
<div class="experience_header">
<div>
<label for="team">Nom de l'équipe</label>
<input class="team" name="team_<?= $index ?>" value="<?= $key['new_experience_team'];?>"/>
</div>
<div>
<label for="role">Rôle dans l'équipe</label>
<input class="role" name="role_<?= $index ?>" value="<?= $key['new_experience_role'];?>"/>
</div>
</div>
<div class="experience_textarea">
<label for="description">Description du rôle</label>
<textarea class="description" name="description_<?= $index ?>"><?= $key['new_experience_description']; ?></textarea>
<label for="palmares">Palmarés avec l'équipe</label>
<textarea class="palmares" name="palmares_<?= $index ?>"><?= $key['new_experience_palmares']; ?></textarea>
</div>
</div>
<?php
$index++;
}
} else {
?>
<div><p>Vous n'avez encore rentré aucune expérience</p></div>
И вот теперь функция, вызываемая в начале файла, но помещенная в другой файл:
function save_extra_profile_fields($user_id, $index) {
if (!empty($_POST['experiences'])) {
$experiences[] = $_POST['experiences'];
for ($i = 0; $i < $index; $i++) {
$experience_{$i}['new_experience_team'] = $_POST["team_{$i}"];
$experience_{$i}['new_experience_role'] = $_POST["role_{$i}"];
$experience_{$i}['new_experience_description'] = $_POST["description_{$i}"];
$experience_{$i}['new_experience_palmares'] = $_POST["palmares_{$i}"];
$experiences[] = $experience_{$i};
}
update_usermeta($user_id, 'experiences', $experiences);
}
}
Это не работает, потому что в этой функции $ index фактически не определен.
Спасибо всем