我正在为电子邮件编写代码。
enter code here:-
<?php
if (isset($_POST['submit']))
{
if(!empty($_POST['sendto'])) {
foreach($_POST['sendto'] as $check) {
echo $check[0]; // error :Notice: Uninitialized string offset: 1 in C:\xampp\htdocs\smart_class_Ctr\email.php on line 15
echo "<br>";
echo $check[1];
}
}
}
&GT;
<form method='post' action=''>
Subject: <input name='subject' type='text' /><br/>
Message:<br/>
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type="checkbox" name="sendto[]" value="1" />Student
<input type="checkbox" name="sendto[]" value="2" />Staff
<input type='submit' value="submit" name="submit" />
为什么会发生这种情况(或者为什么会产生无限循环)的任何帮助都将不胜感激!
请建议我如何解决这个问题。
谢谢:)
答案 0 :(得分:1)
因为 $ check不是数组
使用它:
if (isset($_POST['submit']))
{
if(!empty($_POST['sendto'])) {
foreach($_POST['sendto'] as $check) {
echo $check; //now you see values
echo "<br>";
}
}
}
如果您想获得发布的第一个值,请使用:
$_POST['sendto'][0]
答案 1 :(得分:1)
您可以使用print_r($_POST);
查看$_POST
超全局数组的全部内容。那会帮助你看到你出错的地方。这是一个例子:
Array
(
[subject] => Subject
[message] => Some sample message.
[sendto] => Array
(
[0] => 1
)
[submit] => submit
)
您正在使用foreach
循环来遍历$_POST['sendto']
。 foreach
自动获取数组值,因此您无需指定数组索引。换句话说,$check
不是数组,它是值本身。所以你要改为:
foreach($_POST['sendto'] as $check) {
echo $check;
}
答案 2 :(得分:1)
尝试echo $check;
NOT echo $check[0];
答案 3 :(得分:0)
而不是:
echo $check[0];
使用以下代码:
echo $check;
如果你想要键和值两者,那么使用:
foreach($_POST['sendto'] as $key => $check) {
echo $key." = ".$check;
}
这里$ key将具有index的值。