我有一个简单的表单,它会到达以下代码进行处理。
include("connect.php");
$items = array_key_exists('equipment', $_POST) ? $_POST['equipment'] : '';
if(!empty($items))
{
if ($_POST["equipment"] == "computer") {
echo "checked computer!";
} else if($_POST["equipment"] == "projector")
{
echo "checked projector!";
$sql = "SELECT room_name, day_avail, from_time, to_time, equip_name
FROM rooms
JOIN equipment ON (equipment.room_id = rooms.room_id)
JOIN room_availability ON (room_availability.room_id = rooms.room_id)
WHERE equip_name='Projector'
GROUP BY day_avail";
$myData = mysql_query($sql, $conn) or die(mysql_error());
$row = mysql_fetch_array($myData);
echo $row;
// echo mysql_num_rows($myData);
} else if($_POST["equipment"] == "whiteboard")
{
echo "checked whiteboard!";
} else if($_POST["equipment"] == "visualiser")
{
echo "checked visualiser!";
} else if($_POST["equipment"] == "desk")
{
echo "checked desk!";
}
} else {
echo "> Sorry, You have not made a selection.";
}
通过jQuery AJAX调用调用表单,如下所示:
<script>
$('form').submit(function(){
var str = $(this).serialize();
$.ajax({
url: "userLogic.php",
type: "post",
data: str,
cache: false
}).done(function( html ) {
$("#rooms_wrap").append(html);
});
});
</script>
当选中projector
复选框并提交表单时,我希望从数据库中获取房间列表,以便我可以通过PHP foreach循环将它们打印出来。相反,我得到错误说:
注意:数组转换为字符串
如何获取房间列表,并在foreach循环中打印出来?我知道会返回5行数据,因为mysql_num_rows
在我回显时会起作用。
非常感谢任何帮助。
答案 0 :(得分:6)
echo
将字符串作为参数,但mysql_fetch_array
返回数组 - 您收到的消息表示数组转换为字符串以由echo
打印。尝试使用var_dump打印出数组:
var_dump($row);
要打印出查询返回的所有行,请使用以下内容:
while($row = mysql_fetch_array($myData)) {
echo $row["room_name"]; // for example
}
答案 1 :(得分:2)
您收到错误消息:
注意:数组转换为字符串
因为你这样做:
$row = mysql_fetch_array($myData);
echo $row;
选中projector
时。
使用数组进行的这种echo
调用会向您发出通知消息。
尝试做这样的事情(例如):
while ($row = mysql_fetch_array($myData)) {
var_dump($row);
// or:
// print_r($row);
}
答案 2 :(得分:0)
您也可以将数组转换为如下字符串:
$arr = $_POST;
echo implode(', ', $arr);