[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: AJAX + PHP Image
uMnepaTop
Всем привет. Прошу помочь...
Есть картинка написанная на ПХП, ей передаются параметры:
$red, $grn, $blu

Задача состоит в том, чтобы с помощью палитры цветов передавать параметры Р, Г, Б этим переменным и перезагружать ДИВ с картинкой.

Вообщем как-то так, сам уже намучался, что не могу не попросить помощи...

В js не силен, к сожалению =\

Буду благодарен, кто поможет.



Спустя 10 минут, 36 секунд (26.10.2009 - 17:44) glock18 написал(а):
Объяснение не понял.

Может что-то типа:
передаешь ajax'ом выбранные цвета. картинка генерируется, отдается урл к ней. после чего в нужный тег img он, этот урл, подставляется.

Спустя 37 секунд (26.10.2009 - 17:44) uMnepaTop написал(а):
Скорее всего именно так!

Спустя 1 день, 4 часа, 33 минуты, 13 секунд (27.10.2009 - 22:18) uMnepaTop написал(а):
Никто не поможет?

Спустя 26 минут, 37 секунд (27.10.2009 - 22:44) Joker написал(а):
Цитата (Joker)
Нарушения правил.
2.3.d наиболее полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.



Покажи что уже сделал, мы подскажем или поправим.

Спустя 1 день, 5 часов, 52 минуты, 58 секунд (29.10.2009 - 04:37) uMnepaTop написал(а):
Вообщем вроде как разобрался... Проблема теперь в том, что созданную картинку (даже максимально простую) на php, не показывает, а вместо нее пишет:
Код
�PNG 

или
Код
�GIF 

Не могу понять в чем дело, пол инета обползал, вообще мосК на бекрень съезжает =\\ blink.gif

Спустя 12 часов, 51 минута, 22 секунды (29.10.2009 - 17:29) uMnepaTop написал(а):
Будьте добры, помогите пожалуйста. Мыслей нет... если только iframe какой нибудь использовать...

Спустя 9 минут, 55 секунд (29.10.2009 - 17:39) glock18 написал(а):
uMnepaTop
код покажи уже

Спустя 11 минут, 29 секунд (29.10.2009 - 17:50) Joker написал(а):
Цитата (Joker)
Нарушения правил.
2.3.d наиболее полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.


уже замечание делают и все ровно пофиг... вот даже желание помогать отпадать таким.

Спустя 28 минут, 35 секунд (29.10.2009 - 18:19) uMnepaTop написал(а):
Код
<html>
<head>
<? Header("Pragma: no-cache"); ?>
<script type="text/javascript" src="js/jquery.js"></script>
</head>

<body>

<form id="myForm">
Цвет текста: <input type="text" id="srv" value="">
Фон: <input type="text" id="srv" value="">
<input type="hidden" id="srv" value="<?=$_GET['id']?>">
<input type="submit" value="Отправить">
</form>
<div id="content"></div>

<script>
$(document).ready(function()
{
 $('#myForm').submit(function()
 {
  $.ajax({
   type: "GET",  
   url: "b_3.php",  
   data: "id="+$("#srv").val(),
   data: "bg="+$("#bg").val(),     data: "fg="+$("#fg").val(),
   success: function(html)
   {  
    $("#content").html(html);  
   }  
  });  
  return false;  
 });  
             
       });  
</script>
</body>
</html>

Я в AJAX'e не силен, поэтому пример взял с интернета...
обычная обработка, я так понимаю.

Файл b_3.php:

PHP
header("Content-type: image/png");

$bg $_GET['bg'];
$bgCol hex2rgb($bg);

$fg $_GET['fg'];
$fgCol hex2rgb($fg);

function 
hex2rgb($hex)
{
        return array( 
'r' => hexdec(substr($hex02)), // 1st pair of digits
                      
'g' => hexdec(substr($hex22)), // 2nd pair
                      
'b' => hexdec(substr($hex42))  // 3rd pair
                    
);
}

$im imagecreate(10020);
$background_color imagecolorallocate($im$bgCol['r'],$bgCol['g'],$bgCol['b']);
$text_color imagecolorallocate($im$fgCol['r'],$fgCol['g'],$fgCol['b']);
imagestring($im155,  $id." - Фон: ".$bg." - Цвет текста: ".$fg$text_color);
imagepng($im);
imagedestroy($im);


Вот собственно и все.

Спустя 23 минуты, 57 секунд (29.10.2009 - 18:43) glock18 написал(а):
Ты подаешь картинку (бинарную строку) браузеру и говоришь ему, что это html. Вот он и вставляет пэнэгэ-жепэгэ.

Сделал совершенно не так, как было предложено. Надо было

1. сгенерировать картинку и положить ее на серваке во временную папку.
2. взять ее урл и отдать клиенту.
3. клиенту вставить куда надо тег <img> и прописать в src этот урл.

Спустя 5 минут, 55 секунд (29.10.2009 - 18:48) uMnepaTop написал(а):
а как ее динамически менять при вводе данных в форму? rolleyes.gif

Спустя 17 минут, 8 секунд (29.10.2009 - 19:06) glock18 написал(а):
так же

Спустя 23 минуты, 51 секунда (29.10.2009 - 19:29) uMnepaTop написал(а):
Если чесно, не понял как именно сделать unsure.gif

Спустя 2 дня, 2 часа, 42 минуты, 8 секунд (31.10.2009 - 22:12) uMnepaTop написал(а):
Вот что нашел и работает... но НЕ РАБОТАЕТ в IE......... Достало!!!!!! mad.gif
Помогите пожалуйста........ unsure.gif

Цитата
Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRA 5.5 (build 02842); .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
штамп времени: Sat, 31 Oct 2009 19:27:01 UTC


Сообщение: Не удалось завершить действие.  Ошибка c00ce56e.
Строка: 43
Символ: 5
Код: 0
URI-код: http://.../test.php

index.html:
HTML
<script>
window.onload = function()
{
var vhr;
if (XMLHttpRequest)
{
vhr = new XMLHttpRequest();
}
else
{
vhr = new ActiveXObject("Microsoft.XMLHTTP");
}

sendGetData = function(target, tagname)
{
vhr.open('GET', target, true);
vhr.send(null);

vhr.onreadystatechange = function()
{
if ( vhr.readyState == 4 )
{
var txt = document.getElementById(tagname);
txt.innerHTML = vhr.responseText ;
img_resize();
}
}

}

sendPostData = function(target, tagname , oForm)
{
vhr.open('POST', target, true);
vhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=windows-1251');
var param = gatherForm(oForm);
vhr.send(param);

vhr.onreadystatechange = function()
{
if ( vhr.readyState == 4 )
{
var txt = document.getElementById(tagname);
txt.innerHTML = vhr.responseText ;
}
}
}

gatherForm = function(oForm)
{
var params = new Array();

for ( i = 0; i<oForm.elements.length;i++)
{
var fieldNameVal = encodeURIComponent(oForm.elements[i].name)+'='+
encodeURIComponent(oForm.elements[i].value);
params[i] = fieldNameVal;
}
return params.join('&');
}
}
</script>

<form action="events.php" id="test" onsubmit="return false;">
<input type="text" name="srvid">
<input type="button" value="Send" onclick=" var fm = document.getElementById('test'); sendPostData(fm.action, 'pre' , fm)">
</form>
<pre id="pre"></pre>


events.php
PHP
<?php
$srvid 
= $_POST['srvid'];
echo "<span> $srvid </span>";


Очень ПРОШУУ.........

Спустя 13 часов, 48 минут, 54 секунды (2.11.2009 - 12:00) uMnepaTop написал(а):
Все, вопрос снят) Сделал)

Спустя 1 день, 8 часов, 37 минут, 17 секунд (3.11.2009 - 20:38) uMnepaTop написал(а):
Теперь вопрос немного в другом)
Есть Код:
Код
function ajaxFunction()
{
ajax = getAjax();
if (ajax != null)
{
 ajax.open("GET", "/main/../../events.php?{$rand}&in="+encodeURIComponent(document.getElementById("in").value)+"&bg="+encodeURIComponent(document.getElementById("bg").value)+"&fg="+encodeURIComponent(document.getElementById("fg").value), true);
 ajax.send(null);
 ajax.onreadystatechange = function()
 {
  if(ajax.readyState==4) document.getElementById("out").innerHTML=ajax.responseText;  
 }
}
}

Как в нем сделать проверку на:
Код
document.getElementById("bg").value
document.getElementById("fg").value

так, что если переменные пустые, вылезал алерт с текстом? ph34r.gif

Спасибо заранее!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.