2009-10-13 2 views
0

Как исправить это, чтобы при вызове php $ fontcolor и пользователь выбирал значение параметра = "fblue", цвет шрифта будет синим?Генератор веб-страницы PHP не будет генерировать?

Аналогично, если пользователь выбирает значение = «size1» для Размера шрифта 1, как я изменить шрифт, основанный на выборе пользователя, так как это кнопка радио Я думаю, что только значение будет отправлено на php, в этом случае size1?

Раздел с php-скриптом будет на своем собственном отдельном файле .php и не будет , включенном в html, это было просто показать, как выглядит сценарий .php сценария.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
<title> 
Webpagegenerator 
</title> 
</head> 
<body> 
<center> 

<h1>Web Page Generator</h1> 
<h3>Generates a web page based on user choice:</h3> 

<form method = "post" 
action = "webpagegene.php"> 

<h3>User inputs text body: </h3> 

<textarea name = "textbody" 
rows = "10" 
cols = "40"> 
</textarea> 

<br/> 
<br/> 

<table border = "2" > 
<tr> 
<td><h3>Font Color</h3></td> 
<td colspan = "2"><h3>Background Color</h3></td> 
</tr> 

<tr> 
<td> 
<!--How do I fix this so that when php calls $fontcolor 
and the user selects the option value = "fblue" the font color will be blue?--> 
<select name = "fontcolor"> 
<option value = "fblue">Blue</option> 
<option value = "fred">Red </option> 
<option value = "fgreen">White</option> 
</select> 
</td> 
<td> 

<select size = "5" 
name = "backgroundcolor"> 
<option value = "byellow">Yellow</option> 
<option value = "bsilver">Silver</option> 
<option value = "bmaroon">Maroon</option> 
<option value = "bpink">Pink</option> 
</select> 
</td> 

<!--Likewise, if the user selects the value = "size1" for Font Size 1, how 
do I change the font based on the user selection, since this is a radio button 
I think only the value will be sent to the php script, in this case size1?--> 
<td> 
<input type = "radio" 
name = "sizeType" 
value = "size1"/>Font Size 1<br/> 

<input type = "radio" 
name = "sizeType" 
value = "size2"/>Font Size 2<br/> 

<input type = "radio" 
name = "sizeType" 
value = "size3"/>Font Size 3<br/> 
</td> 
</tr> 
</table> 

<br/> 

<input type = "submit" value = "show me"/> 

<br/> 
<br/> 
</form> 

<?php 
// The php script seems to work; however, in terms of 
// the script manipulating attributes such as changing 
// the font, color or background when requested by the user, it 
// does not seem to yield any results :-(. 

// I can however have the user type text into the text field, but this is not 
// enough, I want to be able to manipulate it-change it's font size, font color 
// and the background color for the text. 
$backgroundcolor = $_REQUEST["backgroundcolor"]; 
$fontcolor = $_REQUEST["fontcolor"]; 
$textbody = $_REQUEST["textbody"]; 
$sizeType = $_REQUEST["sizeType"]; 

$theStyle = <<< HERE 
"$textbody$fontcolor$sizeType" 
HERE; 

print $textbody; 
?> 

</center> 
</body> 
</html> 

ответ

0

Необходимо использовать форму для обратной передачи.

Что-то вроде:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> 
    <select size="5" name="backgroundcolor"> 
    <option value="byellow">Yellow</option> 
    <option value="bsilver">Silver</option> 
    <option value="bmaroon">Maroon</option> 
    <option value="bpink">Pink</option> 
    </select> 
    <input type="submit" value="Change" /> 
</form> 

После постбэка, вы получите вход в $ _GET [ 'BackgroundColor'].

Я бы порекомендовал использовать Javascript, Cookies и Sessions вместо этого.

Использование jQuery (JavaScript Framework) и jQuery Cookie Plugin:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> 
    <select size="5" name="backgroundcolor" id="bgcolor"> 
    <option value="yellow">Yellow</option> 
    <option value="silver">Silver</option> 
    <option value="maroon">Maroon</option> 
    <option value="pink">Pink</option> 
    </select> 
    <input type="submit" value="Change" id="sbtbtn" /> 
</form> 
<script type="text/javascript"> 
<![CDATA[ 

    $("#sbtbtn").hide(); // hide the Change button so that 
         // you can dynamically do changes 
         // without a post back 

    $("#bgcolor").change(function(){ 
         var val = $("#bgcolor").val(); 
         $("body").css({backgroundColor: val}) 
         // changes the background color 

         $.cookie('changebgcolor', val, { expires: 10 }); 
         // sets the cookie and value, then expire in 10 days. 

         }); 



]]> 
</script> 

На внутреннем интерфейсе (PHP):

<?php 

if(isset($_COOKIE['changebgcolor'])){ 
    $_SESSION['bgcolor'] = $_COOKIE['changebgcolor']; 
    setcookie ('changebgcolor', '', time() - 3600); 
    // unset the cookie 
} 

$_SESSION['bgcolor'] = $_SESSION['bgcolor']?$_SESSION['bgcolor']:'white'; 

echo '<style type="text/css"><!-- 
body{background-color:'.$_SESSION['bgcolor'].'} 
--></style>'; 

?> 
+0

Да, я думаю, что не разделение html и php-раздела может не сделать то, что я пытаюсь сделать ясно, я ценю помощь, однако я просто пытался использовать чистый HTML и PHP с акцентом на php. Для конечного продукта скрипт html и php будет отдельным. html просто создаст форму и отобразит выбранные пользователем параметры, в то время как скрипт .php примет эту информацию, представленную пользователем, и отформатирует ее соответственно: с точки зрения размера шрифта, цвета фона и шрифта. – Newb

+0

Это действительно приятное и интересное использование переменной $ ("body") и .css, в дополнение к $ .cookie, я не знал, что вы могли бы это сделать, как вы так себя чувствуете? – Newb

+0

вы можете вставлять PHP и HTML вместе. на самом деле это было бы более эффективно, так как у вас будет много файлов, если вы их разделите. Что еще, если вам нужно отображать данные в файле HTML? Самообучение, интернет и логика сделали эту работу. – mauris

0

Я думаю, вы недоразумение, что делает PHP.

Сценарий обрабатывается сервером до его отправки в браузер пользователя.

После того как PHP-скрипт был обработан сервером, он будет иметь простой HTML-код, и вам потребуется использовать различные методы для получения необходимых изменений.

Маурис предложил несколько методов. Просто зайдите в Google, и вы найдете много примеров.

Некоторые другие хорошие условия поиска - DOM, AJAX и DHTML.

+0

После того, как PHP-скрипт был обработан сервером, он будет в виде простого HTML, и вам нужно будет использовать разные методы для получения желаемых изменений. Да, техники? На стороне html или php, если так, как? – Newb

+0

Я был в предположении, что сторона html в этом случае, код, который я представил, будет отвечать только за варианты с точки зрения пользователя, выбирающего размер шрифта, цвет фона и цвет шрифта. PHP-скрипт будет сидеть на сервере и делать все манипуляции с точки зрения форматирования вывода html на основе выбранного выбора пользователем в начальной форме html. – Newb

0

Или вы можете использовать jQuery (javascript), чтобы изменить цвет. Если вы используете javascript, вам также не нужно перезагружать страницу.

Ниже приведен пример http://www.smallsharptools.com/SmallSharpTools.EmbeddedScripts/JQuery.aspx

Посмотрите на исходный код.

+0

JavaScript был бы приятным, но я пытаюсь изучить php, последнее, что мне нужно, это другой язык сценариев - другими словами, я пытаюсь есть и пробовать свою пластинку php, прежде чем начинать опробовать другие продукты (Javascript), спасибо для идеи. – Newb

+0

Я просто подумал, что php будет проще, но, глядя на часы, это не так, просто кажется, что это тяжелая работа, но это того стоит, может быть, когда я начну понимать php, javascript будет не таким уж тяжелым слышал. – Newb

0

Вы хотите просто напечатать tex из textarea на новом экране с новым стилем или показать одну и ту же страницу с измененным содержимым textarea?

+0

Печать текста из текстовой области на новом экране с новым стилем. – Newb

+0

Итак, вы можете просто напечатать что-то вроде этого: print " ". $ textbody." "; – Kamilos

Смежные вопросы