Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2022, 23:32
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

как вывести картинку и запустит php в js
Здравствуйте! как вывести картинку и запустить php в JS
пока все находиться в одно html файле = все работает
НО как только я их разделяю по правилам: все php в javascript не работает
document.onmouseover = function(e){
    if(e.target.tagName == 'A'){
		if(e.target.id == 'a1'){
			document.querySelector('#links').textContent = '<?php $conf = parse_ini_file("admin/new/1.dat" ); echo $conf[text1]; ?>';
			document.querySelector('#image').textContent = '/admin/new/1.jpg';
		}
		if(e.target.id == 'a2'){
			document.querySelector('#links').textContent = '<?php $conf = parse_ini_file("admin/new/2.dat" ); echo $conf[text1]; ?>';
			document.querySelector('#image').textContent = '/admin/new/2.jpg';
		}
		if(e.target.id == 'a3'){
			document.querySelector('#links').textContent = '<?php $conf = parse_ini_file("admin/new/3.dat" ); echo $conf[text1]; ?>';
			document.querySelector('#image').textContent = '/admin/new/3.jpg';
		}
		if(e.target.id == 'a4'){
			document.querySelector('#links').textContent = '<?php $conf = parse_ini_file("admin/new/4.dat" ); echo $conf[text1]; ?>';
			document.querySelector('#image').textContent = '/admin/new/4.jpg';
		}
		if(e.target.id == 'a5'){
			document.querySelector('#links').textContent = '<?php $conf = parse_ini_file("admin/new/5.dat" ); echo $conf[text1]; ?>';
			document.querySelector('#image').textContent = '/admin/new/5.jpg';
		}
    }
}

<img id=\"image\" src=\"image\" alt=\"альтернативный текст\">
<div id=\"links\">Тут будет выводится текст из ссылок</div>

ссылки
<a id=a1 href=#>a1</a><br />
<a id=a2 href=#>a2</a><br />
<a id=a3 href=#>a3</a>
<a id=a4 href=#>a4</a>
<a id=a5 href=#>a5</a>
Ответить с цитированием
  #2 (permalink)  
Старый 14.01.2022, 06:52
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

Готов проект
в общем: сделал по старинке 90х может у кого, что по свежей есть
отдельно файл javascript.js в нем утрамбовал две функции
document.onmouseover = function(e){
    if(e.target.tagName == 'A'){
		if(e.target.id == 'a1'){
			document.querySelector('#links').textContent = '11111111111111aaaaaaaaa1';
		}
		if(e.target.id == 'a2'){
			document.querySelector('#links').textContent = '222222222222222222aaaaaaaaaaaaa';
		}
		if(e.target.id == 'a3'){
			document.querySelector('#links').textContent = '3333333333333333333aaaaaaaa';
		}
		if(e.target.id == 'a4'){
			document.querySelector('#links').textContent = '44444444444444aaaaaaaaaaaaaaa4';
		}
		if(e.target.id == 'a5'){
			document.querySelector('#links').textContent = '<?php $conf = parse_ini_file("admin/new/5.dat" ); echo $conf[text1]; ?>';
			document.querySelector('#image').textContent = '/admin/new/5.jpg';
		}
    }
}
function ChangeImg() {
  if(document.images) {
   eval("document."+ChangeImg.arguments[0]+
   ".src=('"+ChangeImg.arguments[1]+"')");
  }
}

в html документе вывел а) отдельно тексты, б) отдельно картинки
$new1 = parse_ini_file("admin/new/1.dat"); 
$new2 = parse_ini_file("super.txt");
echo"
<table class=\"table1\">
<tr>
<td class=\"td12\"><img src=\"text/001.bmp\" name=\"image1\" alt=\"image1\" /></td>
<td class=\"td13\"><div id=\"links\">Тут будет выводится текст из ссылок</div></td>
<td class=\"td14\">


<table class=\"table7\">
<tr>
<th>Новости</th>
</tr>
<tr>
<td><a id=\"$new1[id]\" href=\"$new1[pach]\" onmouseover=\"ChangeImg('image1','admin/new/2.jpg')\"  onmouseout=\"ChangeImg('image1','admin/new/2.jpg')\">$new1[link]</a></td>
</tr>
<tr>
<td><a id=\"$new2[id]\" href=\"$new2[pach]\" onmouseover=\"ChangeImg('image1','admin/new/1.jpg')\"  onmouseout=\"ChangeImg('image1','admin/new/1.jpg')\">$new2[link]</a></td>
</tr>
<tr>
<td><a id=\"$new3[id]\" href=\"$new3[pach]\">$new3[link]</a></td>
</tr>
<tr>
<td><a id=\"$new4[id]\" href=\"$new4[pach]\">$new4[link]</a></td>
</tr>
<tr>
<td><a id=\"$new5[id]\" href=\"$new5[pach]\">$new5[link]</a></td>
</tr>
</table>
</td>
</tr>
</table>

если есть возможность подкорректируйте плиз, т.к. я понимаю что эта писанина на твердую 3
Ответить с цитированием
  #3 (permalink)  
Старый 14.01.2022, 11:16
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

не работает строка
document.querySelector('#links').textContent = '<?php echo "000000000000000"; ?>';

эта страка работает только когда и скрипт и пшп вместе на странице
и не работает если делаю так:
<script src="js/new.js"></script>

не уже ли нет способов кроме post и джет?
Ответить с цитированием
  #4 (permalink)  
Старый 14.01.2022, 11:29
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Есть три решения: мерзкое, убогое и правильное.

Мерзкое: настроить твой сервер так, чтобы он исполнял php код внутри .js файлов. По умолчанию он этого не делает. Гуглить по словам <имя сервера> enable php execuion in .js files.

Убогое: возвращать js из php точно также, как ты возращаешь html из php:
<script src="js/new.php"></script>
Пример: new.php
<?php header('Content-Type: application/javascript');?>
// javascript code here

Правильное: полностью разделить серверную и клиентскую логику. PHP скрипты должны отдавать исключительно json данные по GET\POST запросам, в .js и .html должны быть исключительно javascript и разметка соответственно.



P.S. Когда выводишь данные в js из php никогда не используй просто echo, всегда используй json_encode. Да, даже для строк и чисел. Так шанс случайно накосячить сильно меньше.
document.querySelector('#links').textContent = '<?php echo "000000000000000"; ?>';
->
document.querySelector('#links').textContent = <?=json_encode("000000000000000")?>;
__________________
29375, 35

Последний раз редактировалось Aetae, 14.01.2022 в 11:46.
Ответить с цитированием
  #5 (permalink)  
Старый 14.01.2022, 11:56
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

спасибо! теперь я вижу что выдает:
Цитата:
00000<\/div>"
Ответить с цитированием
  #6 (permalink)  
Старый 14.01.2022, 12:01
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

попытка звять текст из файлов
я пытался сделать, чтобы текст из файлов брал. т.е. брал 1111a.dat и открывал его так:
$new1 = parse_ini_file("admin/text/new/1.dat");
в теории
$new1 = parse_ini_file("[B][U]#links[/U][/B]");

а от туда
Код:
$new1[pach]
так!
document.onmouseover = function(e){
    if(e.target.tagName == 'A'){
		if(e.target.id == 'a1'){
			document.querySelector('#links').textContent = '1111a.dat';	
			document.href=('"+ChangeImg.arguments[1]+"');			
		}
		if(e.target.id == 'a2'){
			document.querySelector('#links').textContent = '2222a.dat';
		}
		if(e.target.id == 'a3'){
			document.querySelector('#links').textContent = '3333333333333333333aaaaaaaa';
		}
		if(e.target.id == 'a4'){
			document.querySelector('#links').textContent = '<?php echo json_encode("bbbbbbbbbbbbbb"); ?>';
		}
		if(e.target.id == 'a5'){
			document.querySelector('#links').textContent = '<?php echo "000000000000000"; ?>'; 
		}
    }
}
function ChangeImg() {
  if(document.images) {
   eval("document."+ChangeImg.arguments[0]+
   ".src=('"+ChangeImg.arguments[1]+"')");
  }
}
Ответить с цитированием
  #7 (permalink)  
Старый 14.01.2022, 12:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

http://phpfaq.ru/newbie/na_tanke
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 15.01.2022, 08:58
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

в этом то и проблема
значение переменной передается только в том случае когда весь скрипт находиться в одном документе:
<script>document.write("<?php $name='ffffffffffff'; ?>");</script>
<?php
echo "==========".$name;
?>

а, когда разделяешь:
document.write("<?php $name='ffffffffffff'; ?>");

<?php
echo "==========".$name;
?>

скрипт работать перестает: т.е. файлы JS сервер не обрабатывает. и 3 варианта как это подправить Правильно 3й вариант каждый на своем месте!
вот: а теперь как мне принять значение от JS к JS
<?php
$name="<div id='output0'>555</div>";
echo json_encode($name);
echo "<a href={$name}>11111</a>";
?>
<script>
document.body.myData = {
  name: 'file.txt'
};
document.getElementById("output").innerHTML=document.body.myData.name;
</script>
в DIV все отлично, а в ссылку значение <div0 и.т.п
СКРИН ВЫВОДА

Последний раз редактировалось leon2009sp, 15.01.2022 в 09:08.
Ответить с цитированием
  #9 (permalink)  
Старый 15.01.2022, 09:21
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

проба номер 447
ВОТ и тогда наткнулся на это:
<script>
function chg(id)
{
var el = document.getElementById(id);  
if (el.href.indexOf("image/x.png")>0)
{
el.href="image/xb.png";
}
else
{
el.href="image/x.png";
}
}
</script>
<?php
echo "<a href=\"image/x.png\" id=\"img_1\" onClick=\"chg(this.id,'check')\">11111111111</a>";
?>
все четко передает, теперь осталось склеить

по моему у меня просто глюкнул ДЕНВЕР

Последний раз редактировалось leon2009sp, 15.01.2022 в 09:59.
Ответить с цитированием
  #10 (permalink)  
Старый 15.01.2022, 10:49
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

чтение файла построчно
а можно еще вопрос: текстовый файл содержит
Цитата:
text1="111111111111111111111111111111ttt";
text2="2222222222222222222222ttt";
text3="3333333333333333";
как прочитать text2 ,,???? спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить php из js Devil198711 Events/DOM/Window 2 14.06.2016 18:23
Как вывести информацию JS d теге HTML? bsa1977 Общие вопросы Javascript 1 22.03.2016 23:05
Как вывести даты на JS? mrbanan Общие вопросы Javascript 4 11.12.2015 20:12
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23