可能重复:
PHP: “Notice: Undefined variable” and “Notice: Undefined index”
我想在选择框中选择一些值以多次显示字符串时,例如,如果我选择值2,它将显示两次字符串。
这是我尝试过的代码:
<!DOCTYPE HTML>
<html>
<head>
<script>
function checkIt()
{
var getNum = document.getElementById("numb").value;
//this_file.php ... im specifying for just. you specify this full code in any of file and specify the whole url path
location.href="this_file.php?countIt="+getNum;
}
</script>
<style type="text/css">
.centrer
{
position: absolute;
left: 50%;
top: 50%;
font-size:24px;
}
</style>
</head>
<body>
<select name="nombres" id="numb" onchange="checkIt();">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<?php
if($_REQUEST["countIt"])
{
$displayTimes = $_REQUEST["countIt"];
}
?>
<div class="centrer">
<?php
$s = "Hello World! <br/>";
for($i=0; $i<$displayTimes; $i++)
echo $s;
?>
</div>
</body>
</html>
但我有一个问题:
注意:未定义的变量:C:\ Program中的displayTimes 第43行的文件\ EasyPHP-12.1 \ www \ site \ Untitled-1.php
注意第43行是:for($i=0; $i<$displayTimes; $i++)
还有另一个问题,当我选择“1”值时它会做任何事情,而且当我选择其他值时,选择框中的选定值仍然是值“1”而我有另一个问题是没有任何问题不使用JS而只使用PHP的其他方法吗?
答案 0 :(得分:6)
$displayTimes
只有在满足条件时才会被声明,它是由以下原因引起的:
if($_REQUEST["countIt"]) <------------------- Condition
{
$displayTimes = $_REQUEST["countIt"];
}
将以上内容替换为:
$displayTimes = isset($_REQUEST["countIt"]) ? $_REQUEST["countIt"] : 0;
答案 1 :(得分:1)
必须设置变量$displayTimes
才能使用它。如果未设置$_REQUEST["countIt"]
,则未设置$displayTimes
。
将其更改为以下内容:
$displayTimes = isset($_REQUEST['countIt']) ? $_REQUEST['countIt'] : 0;
这样,如果未设置$_REQUEST['countIt']
,则不会执行。
答案 2 :(得分:1)
这是一个更干净的代码:
<?php
if(isset($_GET['countIt'])) {
print '<div class="centrer">';
$s = "Hello World! <br/>";
for($i=0; $i<$_GET['countIt']; ++$i) echo $s;
print '</div>';
}
?>
并查看此JS代码:http://jsfiddle.net/xPuEN/1/