PHP генератор веб-страниц не будет генерировать? - PullRequest
0 голосов
/ 13 октября 2009

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

Аналогично, если пользователь выбирает значение = "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>

Ответы [ 4 ]

0 голосов
/ 13 октября 2009

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

0 голосов
/ 13 октября 2009

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

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

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

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

Другими хорошими поисковыми терминами являются DOM, AJAX и DHTML.

0 голосов
/ 13 октября 2009

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

Вот пример http://www.smallsharptools.com/SmallSharpTools.EmbeddedScripts/JQuery.aspx

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

0 голосов
/ 13 октября 2009

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

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

<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>';

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