PHP Foreach отображает один набор значений несколько раз - PullRequest
0 голосов
/ 30 апреля 2018

My foreach в приведенном ниже PHP / AJAX / JS отображает один набор результатов несколько раз, а не два результата, которые должны отображаться по одному разу каждый. Мне нужно использовать foreach для достижения конечного результата, который я ищу, но это не отображает всю информацию.

$entries = [];
$entries['id'] = get_the_id();
$entries['fname'] = get_field('fname');
$entries['lname'] = get_field('lname');
$entries['custid'] = get_field('customer_id');
$entries['company'] = get_field('company');
$entries['addr1'] = get_field('address_line_1');
$entries['addr2'] = get_field('address_line_2');
$entries['city'] = get_field('city');
$entries['state'] = get_field('state');
$entries['zip'] = get_field('zip');


<script>
function populateFields() {
    alert('Gathering representatives...');
    $.ajax({
        type: "POST",
        url: "form-shipping.php",
        data: <?php foreach($entries as $entry){?>
            {
                "id": <?php echo $entry['id'];?>,
                "fname": <?php echo $entry['fname'];?>,
                "lname": <?php echo $entry['lname'];?>,
                "custid": <?php echo $entry['custid'];?>,
                "company": <?php echo $entry['company'];?>,
                "addr1": <?php echo $entry['addr1'];?>,
                "addr2": <?php echo $entry['addr2'];?>,
                "city": <?php echo $entry['city'];?>,
                "state": <?php echo $entry['state'];?>,
                "zip": <?php echo $entry['zip'];?>,
            } ;
        <?php } ?>
        dataType: 'text';
        success function (){

        }
    });
    //if option value is equal to $ID, echo fields that match $ID
    ...

И мои результаты

<script>
    function populateFields() {
        alert('Gathering representatives...')
        $.ajax({
          type: "POST",
          url: "form-shipping.php",
          data: {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                    {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                    {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                        {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                        {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                        {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
                                    {
                    "id": 136,
                    "fname": John,
                    "lname": Franklin,
                    "custid": 00100120141,
                    "company": Bonetta Inc.,
                    "addr1": 123 Bonetta Ln,
                    "addr2": ,
                    "city": Indianopolis,
                    "state": Indiana,
                    "zip": 1234,
                } ;
            dataType: 'text';
            success function (){

        }
    });
//if option value is equal to $ID, echo fields that match $ID
...
</script>

`

1 Ответ

0 голосов
/ 01 мая 2018

Если ваш пример массива точен, вы создали только одномерный массив. foreach будет ожидать итерации по многомерному массиву.

например:

$entries[0]['id'] = get_the_id();
$entries[0]['fname'] = get_field('fname');
$entries[1]['id'] = get_the_id();
$entries[1]['fname'] = get_field('fname');
$entries[2]['id'] = get_the_id();
$entries[2]['fname'] = get_field('fname');

и т.д.

И / или, если вы строите многомерный массив (но не показали нам, что вы для краткости), то, если вы начинаете каждую сборку с $entries = [];, вы эффективно сбрасываете массив обратно опустошить.

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