【发布时间】:2014-03-22 23:14:03
【问题描述】:
上下文:
使用 PHP 来回显 HTML。
问题:
除非我硬编码了 $n(即 $n = 2;),否则回显的 HTML 不会显示。
疑难解答:
-我已确认我正在通过 echo、var_dump、print_r 接收 POST 数据。
-我已经确认 for 循环的工作原理是用硬编码的数字代替 $n。
-我已经确定通过 POST 接收到的字符串是一个整数。
<?php
$n=intval($_POST["a"]);
for($count=1;$count<=$n;$count++)
{
echo '<li>foo ' . $count . ':<input type="text" name="bar' . $count . '" value="baz ' . $count . '"></li>';
};
?>
编辑:PHP 从 AJAX 获取 POST(见下文)
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#formid").change(function(){
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
data : $(this).serialize(),
success : function( response ) {
alert( response );
}
});
$("#div1").load("load.php");
});
});
</script>
【问题讨论】:
-
您是否通过
var_dump($n)来查看您在循环中实际使用的内容?另外,您的value部分回声不正确。您将文字文本baz . $count填充到您的值字段中,而不是(比如说)baz5。 -
请参阅“故障排除”下的内容,我已经编辑了回声——我复制/粘贴不正确
-
如果您发布数字 1,您将不会进入循环,因为 1
-
好主意——一直使用数字 > 1 来避免这个问题
-
我感觉这是一个 PEBKAC 类型的错误。