PHP没有从变量中获取正确的字符串

时间:2017-03-03 14:48:30

标签: php

我制作了两个名字为的变量:

$strin = '<div id="div1">'.$strin.'</div>';
$strin2 = '<div id="div2">'.$strin2.'</div>';

在输出上我必须这样:

<div id="div1">HERE WHAT EVER I TYPED ON TEXT AREA 1</div>

但我只输出我在文本区域1上键入的单词而没有div,这意味着我没有得到变量中的内容。不确定有什么问题

对于文本区域2

这是我的PHP代码

<form method="post"> 
<label>File name:</label><br> 
<input type='text' name='filename' placeholder='File name'> 
<label>Folders:</label> 
<select name="thisfolder"> 
<option value="">Default</option> 
<option value="Folder1">Folder1</option> 
<option value="Folder2">Folder2</option> 
<option value="Folder3">Folder3</option> 
</select><br><br> 
<label>Text Area 1:</label><br> 
<textarea type='text' name='strin' style="margin:0px;width:500px;height:200px;"></textarea><br><br> 
<label>Text Area 2:</label><br> 
<textarea type='text' name='strin2' style="margin:0px;width:500px;height:200px;"></textarea><br> 
<input type='submit' value='Add'> 
</form> 

<script> 
var textarea1 = document.querySelector('[name=strin]'); 
var textarea2 = document.querySelector('[name=strin2]'); 

textarea1.oninput = function () { 
textarea2.value = ''; 
}; 

textarea2.oninput = function () { 
textarea1.value = ''; 
}; 
</script> 

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
// the name of the file to create 
$filename=$_POST['filename']; 
// the name of the file to be in page created 
$strin=$_POST['strin']; 
// the name of the file to be in page created 
$strin2=$_POST['strin2']; 
// the name of the folder to put $filename in 
$thisFolder = $_POST['thisfolder']; 
// make sure #thisFolder of actually a folder 
if (!is_dir(__DIR__.'/'.$thisFolder)) { 
// if not, we need to make a new folder 
mkdir(__DIR__.'/'.$thisFolder); 
} 
// . . . /[folder name]/page[file name].php 
$myFile = __DIR__.'/'.$thisFolder. "/page" .$filename.".php"; 

// This is another way of writing an if statment 
$iframe = ($strin !== '') ? $strin : $strin2; 
$strin = '<div id="div1">'.$strin.'</div>';
$strin2 = '<div id="div2">'.$strin2.'</div>';



$fh = fopen($myFile, 'w'); 
$stringData = "

    <div id=\"area_code\">

        " .$iframe. "

    </div>

"; 

fwrite($fh, $stringData); 
fclose($fh); 
} 
?>
希望你明白这一点。

2 个答案:

答案 0 :(得分:0)

你的问题在这里:

$iframe = ($strin !== '') ? $strin : $strin2; 
$strin = '<div id="div1">'.$strin.'</div>';
$strin2 = '<div id="div2">'.$strin2.'</div>';

您将$strin$strin2的值复制到$iframe,然后修改$strin$strin2,并且您希望以某种方式{{1}的值也更新了。

这不会发生。代码完全按照上面的说明执行。如果您之后在$iframe中未添加其他值,则不会更改。

我不清楚你想要达到什么目标。我想你应该使用真实的$iframe语句(不,if不是写?:语句的简短方法; ifoperator,不是statement)并将所需的值放入?:

$iframe

答案 1 :(得分:0)

代码过早地评估了$strin$strin2的值。您需要更改以下代码:

// This is another way of writing an if statment 
$iframe = ($strin !== '') ? $strin : $strin2; 
$strin = '<div id="div1">'.$strin.'</div>';
$strin2 = '<div id="div2">'.$strin2.'</div>';

到此:

// This is another way of writing an if statment 
$iframe = ($strin !== '') ? '<div id="div1">'.$strin.'</div>' : '<div id="div1">'.$strin2.'</div>';

在评估$strin之前,$strin2$iframe已得到适当更新