PHP включает в себя другой файл, цикл над массивом и функцию запуска для каждой записи - PullRequest
0 голосов
/ 10 января 2019

Я хотел бы получить доступ к значениям массива в другом php-файле ... зациклить его и запустить функцию над каждой записью. Я не могу получить доступ к значениям, хотя ... Я получаю внутреннюю ошибку. Как правильно это сделать? Это моя установка:

contacts.php

<?php

$contacts_de = array(
    'name01' => array(
        'firstName' => 'FirstName01',
        'lastName' => 'LastName01',
        'gender' => 'm',
        'language' => 'de',
        'email' => 'email01'
    ),
    'name02' => array(
        'firstName' => 'FirstName02',
        'lastName' => 'LastName02',
        'gender' => 'f',
        'language' => 'de',
        'email' => 'email02'
    )
);

mail.php

<?php

include('contacts.php');

function renderContacts($arr) {
    global $lang,$contacts_de;
    $d = '';
    foreach($arr as $i) {
        if ($i['gender'] == 'm') {
            .$d = 'Mr. '.$i['firstName'].' '.$i['lastName']
        } else if ($i['gender'] == 'm') {
            .$d = 'Ms. '.$i['firstName'].' '.$i['lastName']
        }
    }
    echo $d;
}

renderContacts();

default.js

$('#sendbtn').on('click', function() {

    $.ajax({
        type: "POST",url: '/mail.php',
        success: function(response,textStatus,jqXHR) {
            console.log(response);

        },
        error: function (jqXHR, status, err) {
            console.log(err);
        }
    });

}); 

Желаемая Console.log

Mr. FirstName01 LastName01
Ms. FirstName02 LastName02

1 Ответ

0 голосов
/ 10 января 2019

Простой ответ на вопрос:

<?php # contacts.php

$contacts = array(
    'name01' => array(
        'firstName' => 'FirstName01',
        'lastName' => 'LastName01',
        'gender' => 'm',
        'language' => 'de',
        'email' => 'email01'
    ),
    'name02' => array(
        'firstName' => 'FirstName02',
        'lastName' => 'LastName02',
        'gender' => 'f',
        'language' => 'de',
        'email' => 'email02'
    )
);

и

<?php # whatever.php

require __DIR__ . '/contacts.php';

function render_contacts(array $contacts) {
    foreach ($contacts as $contact) {
        $prefix = $contact['gender'] == 'm' ? 'Mr' : 'Ms';
        printf("%s. %s %s\n", $prefix, $contact['firstName'], $contact['lastName']);
    }
}

render_contacts($contacts);

Здесь можно увидеть неразделенную песочницу: http://sandbox.onlinephpfunctions.com/code/6daa0147671fcaac9c51fe919c4a8f916181fad1

Я также немного очистил ваш код, удалив такие вещи, как ключевое слово global, некоторые синтаксические ошибки и связанный с вами JavaScript, поскольку он не имеет отношения к проблеме.

GL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...