PHP错误:注意:未定义的变量

时间:2012-10-18 23:25:43

标签: php javascript

  

可能重复:
  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的其他方法吗?

3 个答案:

答案 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/