上下文
使用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>
答案 0 :(得分:2)
修改按照your originally posted question
在'
value="baz
value="baz . $count . '"></li>
^ // right there
完整的回音应该是:
echo '<li>foo ' . $count . ':<input type="text" name="bar' . $count . '" value="baz' . $count . '"></li>';
之前我曾经咬过我,而且我通常用来连接长字符串是在每个句点之后,我按Enter键并创建一个新行。
请记住,PHP对空白区域不敏感,因此您可以随意分隔所有您喜欢的行。
答案 1 :(得分:0)
目前还不清楚您的预期结果应该是什么,但使用后面的( fixed )代码会在HTML源代码中产生以下内容:
<li>foo 1:<input type="text" name="bar1" value="baz1"></li>
<li>foo 2:<input type="text" name="bar2" value="baz2"></li>
<li>foo 3:<input type="text" name="bar3" value="baz3"></li>
<li>foo 4:<input type="text" name="bar4" value="baz4"></li>
<li>foo 5:<input type="text" name="bar5" value="baz5"></li>
PHP(使用5
作为数字)
旁注:为了清楚起见,我在代码末尾添加了. "\n"
。
<?php
// $n=intval($_POST["a"]);
$n=intval(5);
for($count=1;$count<=$n;$count++)
{
echo '<li>foo ' . $count . ':<input type="text" name="bar' . $count . '" value="baz' . $count . '"></li>' . "\n";
};
?>
表格成功测试包括:
<?php
if(isset($_POST['submit'])){
// $n=intval(5);
$n=intval($_POST["a"]);
for($count=1;$count<=$n;$count++)
{
echo '<li>foo ' . $count . ':<input type="text" name="bar' . $count . '" value="baz' . $count . '"></li>' . "\n";
};
}
?>
<form method="post" action="">
Number:
<input type="text" name="a">
<br>
<input type="submit" name="submit" value="Submit">
</form>
旁注:
只是为了测试这两种方法 - 一个有一个,一个没有(intval),$n=$_POST["a"];
也有效。