Страница 1 из 212»
Модератор форума: JonMagon 
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Передать данные в php (Передать данные из доп поля в php файл)
Передать данные в php
admin_777
Сообщений: 12
Репутация: 1

Сообщение # 1 | 07:00:15
Здравствуйте!
Люди подскажите как передать данные из доп поля в php файл

Модуль - Каталог файлов.
При добавлении материала есть доп поле к примеру $OTHER1$
Как подключить это доп поле к php ? то есть, при подключении php файла нужно чтобы информация из доп поля передавалась в php.

Например в php файле будет такой адрес "site.ru/abc/"ggg"/meg , нужно вместо "ggg" инфу из доп поля $OTHER1$
Сообщение отредактировал admin_777 - Четверг, 26 Окт 2017, 11:31:30
sergeymitrichev
Интернет Магазины
Сообщений: 1918
Репутация: 399

Сообщение # 2 | 08:55:18
admin_777, часть адреса PHP-скрипта будет в доп.поле материала? Попробуйте так:
Код
var url =  "site.ru/abc/$OTHER1$/meg";
$.get(url, function(){
// тут что-то делаем
});

admin_777
Сообщений: 12
Репутация: 1

Сообщение # 3 | 11:23:27
sergeymitrichev, нет, просто поставить $OTHER1$ в php не получается, php не подхватывает это доп поле из материала.

Вот php файл.
Код
<?php

    $json = file_get_contents("http://site.ru/abc/"GGG"/meg" );
    $json = json_decode( $json, true );

    echo "Title : ".$json['material']['title']."<br />" ;

?>


Вместо "GGG" нужно чтобы он подхватывал инфу из доп поля.
sergeymitrichev
Интернет Магазины
Сообщений: 1918
Репутация: 399

Сообщение # 4 | 13:55:32
admin_777, доп.поле нужно сначала запросить в PHP. Лучше сделайте это через uAPI

admin_777
Сообщений: 12
Репутация: 1

Сообщение # 5 | 20:03:26
sergeymitrichev, Подскажите как ?
sergeymitrichev
Интернет Магазины
Сообщений: 1918
Репутация: 399

Сообщение # 6 | 08:13:53
admin_777, порядок примерно такой:

admin_777
Сообщений: 12
Репутация: 1

Сообщение # 7 | 08:42:46
Саппортов от Ucoz нет на данном форуме ? Никто помочь не может ?
sergeymitrichev
Интернет Магазины
Сообщений: 1918
Репутация: 399

Сообщение # 8 | 09:15:55
admin_777, я же Вам написал, что нужно сделать. Если что-то неясно, задайте конкретный вопрос, объясню подробнее.

admin_777
Сообщений: 12
Репутация: 1

Сообщение # 9 | 09:28:06
sergeymitrichev, Я понимаю что хотите помочь но я в этом api ничего не понимаю и понять не получается. Я же написал в теме что нужно, как сделать чтобы php хватал информацию из доп поля и выводил результат.

Вообщем модуль. Каталог файлов.
Хочу сделать вывод информации(через php) на вид материалов каталога файлов.
А чтобы на каждом материале была принадлежащая ему информация у каждого должен быть уник идентификатор. Этот идентификатор будет id кинопоиска, он будет указываться в доп поле каждого материала.

То есть php файл будет подключен к виду материалов если это возможно и выводить нужную информацию на каждом материале из json массивов с кинопоиска.

Нужно чтобы этот php файл хватал этот id из доп поля и выводил информацию.

Блин я уже не знаю как еще можно объяснить smile

Что именно нужно сделать в этом uAPI и как это подключить к моей проблеме
sergeymitrichev
Интернет Магазины
Сообщений: 1918
Репутация: 399

Сообщение # 10 | 09:58:42
admin_777, Вы не пытаетесь разобраться, а хотите чтобы это сделали за Вас smile Тогда лучше обратиться на https://upartner.pro

И судя по более подробному описанию, это можно сделать без PHP.

Код
$.get('ссылка на файл с json', function(r){
    var json = $.parseJSON(r);
    $(json).each(function(){
        // тут делаем что-то с видом материалов
        // каждый элемент json будет доступен по ссылке из this
    });
});
Этот скрипт лучше разместить после $BODY$, а в Вид материала добавить контейнер с идентификатором кинопоиска, например так:

Код
<!-- Вид материалов -->
...
    <div class="js_info-$OTHER1$">
        <!-- сюда будет загружаться информация -->
    </div>
...
<!-- /Вид материалов -->
И тогда в блоке кода JS с each можно будет поместить полученные данные из JSON в div вида материалов. Вы не привели пример JSON, но думаю, это будет примерно так:
Код
// this[0] первый элемент массива из JSON, который содержит ID кинопоиска
$('.js_info-' + this[0]).append('Год выпуска: ' + this[1]).append('Жанр: ' + this[2]); // и так далее
Итого имеем скрипт:
Код
<script>
$.get('ссылка на файл с json', function(r){
    var json = $.parseJSON(r);
    // тут делаем что-то с видом материалов
    // каждый элемент json будет доступен по ссылке из this
    $(json).each(function(){
        // this[0] первый элемент массива из JSON, который содержит ID кинопоиска
        $('.js_info-' + this[0]).append('Год выпуска: ' + this[1]).append('Жанр: ' + this[2]); // и так далее this[3], this[4]
    });
});
</script>
Здесь приведен пример скрипта, если json имеет вид массива, например такой:
Код
[["1","aaaaaa","1"],["2","bbbbbbb","2"],["3","ccccccc","3"]]
Если элементы json представлены в виде объекта:

Код
[{id: 1, year: 2015, genre: 'Комедия'}, {id: 2, year: 2016, genre: 'Комедия'}]
То доступ к таким элементам внутри each будет с указанием свойства this.id, this.genre, this.year вместо this[0], this[1], this[2] и т.д.

admin_777
Сообщений: 12
Репутация: 1

Сообщение # 11 | 10:56:22
sergeymitrichev, Я благодарен вам за трату времени ) Сделал все как вы написали по вашему примеру.

скрипт

Код
<script>
$.get('http://site.ru/js/keys.json', function(r){
    var json = $.parseJSON(r);
   
    $(json).each(function(){
        $('.js_info-' + this[0]).append('Год выпуска: ' + this[1]).append('Жанр: ' + this[2]);
    });
});
</script>

Загрузил пример json файла

Код
[["1","aaaaaa","1"],["2","bbbbbbb","2"],["3","ccccccc","3"]]

Поставил
Код
<div class="js_info-1"></div>

И вот результат
sergeymitrichev
Интернет Магазины
Сообщений: 1918
Репутация: 399

Сообщение # 12 | 11:11:16
Попробуйте перед 3 строкой скрипта поставить console.log® и посмотреть, что отдается при загрузке файла. У меня $.parseJSON('[["1","aaaaaa","1"],["2","bbbbbbb","2"],["3","ccccccc","3"]]'); разбирается корректно. Или попробуйте распарсить JSON через eval:
Код
var json = eval('('+r+')');

admin_777
Сообщений: 12
Репутация: 1

Сообщение # 13 | 11:42:53
sergeymitrichev, Поставил console.log() перед 3 строкой , все тоже самое что я отправил выше на скриншоте.
Поставил var json = eval('('+r+')');

Результат


Конечно если поставить как вы проверяете $.parseJSON('[["1","aaaaaa","1"],["2","bbbbbbb","2"],["3","ccccccc","3"]]');

То все работает

Добавлено (27 Окт 2017, 11:42:53)
---------------------------------------------
Кстати я уже пробовал сделать такую реализацию через ajax но там была одна проблема, и сейчас попробовал ваш метод, подключив сторонний json и вышло тоже самое, через скрипт обращаться к этому файлу не получится всегда такая ошибка то что доступа нету
Failed to load http://site.ru/api/file.json: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'site.ru' is therefore not allowed access. The response had HTTP status code 403.
Поэтому и начал рыть в сторону php.

Спасибо вам что попытались smile

sergeymitrichev
Интернет Магазины
Сообщений: 1918
Репутация: 399

Сообщение # 14 | 11:47:35
admin_777, json на удаленном сайте? Напишите PHP скрипт, который запросит данные и выведет, тогда такой проблемы не будет.

В console.log надо передать переменную r: console.log( r );

admin_777
Сообщений: 12
Репутация: 1

Сообщение # 15 | 11:54:30
sergeymitrichev, Ставил console.log( r ); Все тоже самое smile

Json находится на другом сайте. php файл то есть готовый, проблема с доп полем. Как в него айди передавать материала smile
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Передать данные в php (Передать данные из доп поля в php файл)
Страница 1 из 212»
Поиск: