簡體   English   中英

PHP表單返回通知:數組到字符串的轉換

[英]PHP form returns Notice: Array to string conversion

我有一個簡單的表格,其中包含以下要處理的代碼。

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可以工作。

echo將字符串作為參數,但是mysql_fetch_array返回array-收到的消息表示將數組轉換為要通過echo打印的字符串。 嘗試使用var_dump打印出數組:

var_dump($row);

要打印出查詢返回的所有行,請使用以下命令:

while($row = mysql_fetch_array($myData)) {
    echo $row["room_name"]; // for example
}

您收到錯誤信息:

注意:數組到字符串的轉換

因為您正在這樣做:

    $row = mysql_fetch_array($myData);
    echo $row;

檢查projector時。

用數組進行的echo調用會給您通知消息。

嘗試執行以下操作(例如):

while ($row = mysql_fetch_array($myData)) {
    var_dump($row);
    // or:
    // print_r($row);
}

您也可以將數組轉換為如下所示的字符串:

    $arr = $_POST;
    echo implode(', ', $arr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM