1

特定の日付が表示されたカレンダーを表示するphpWebページがあります。

日付はMySqlデータベースに保存されます。

Webページの冒頭で、次のことを行います。

<?php
//Load in database

$query = "SELECT ID, Full_Name, Arrival_Date, Departure_Date FROM bookings ORDER BY Arrival_Date";

if ($result = $dbc->query($query))       //Retrieve all the booking details
{
    $numrows = $result-> num_rows;

    $id_array;
    $name_array;
    $arrival_array;
    $departure_array;

    for ($count = 0; $count < $numrows; $count++)
    {
        $row = $result->fetch_assoc();

        $id_array[$count] = $row['ID'];
        $name_array[$count] = $row['Full_Name'];
        $arrival_array[$count] = $row['Arrival_Date'];
        $departure_array[$count] = strval($row['Departure_Date']);
    }
}
else
{
    //Error
}
?>

IDは数値ですFull_Nameは文字列ですArrival_DateとDeparture_Dateは日付です(YYYY-MM-DD)

カレンダーはjavascriptオブジェクトであるため、予約情報を使用できるようにするには、予約情報をjavascript関数に取り込む必要があります。

これが私がそれをやろうとしている方法です:

<script type="text/javascript">
    var array_ID = [<?php echo implode(",",$id_array); ?>];
    var array_name = [<?php echo implode(",",$name_array); ?>];
    var array_arrival = [<?php echo implode(",",$arrival_array); ?>];                                           
    var array_departure = [<?php echo implode(",",$departure_array); ?>]; 

    var booking_numbers = <?php echo $numrows; ?>;
</script>

ただし、次の行に「Uncaught SyntaxError:UnexpectedIdentifier」というエラーが表示されます。

var array_name = [<?php echo implode(",",$name_array); ?>];

これは、配列が次のように表示されるときに、一部の名前にスペースが含まれているためだと思います。

var array_name = [Pippa,Pippa Smith,Pippa Smith];

php値が入力されたとき。

これが私の質問です。これらの入力を文字列として扱うようにJavaScriptに指示するにはどうすればよいですか。

そして、これはjavascriptとphpを組み合わせるひどい方法かもしれないことを私は知っているので、誰かがもっと良い提案があれば、私は喜んでそれらを取ります!

4

2 に答える 2

3

1)1つの方法は、phpで使用し、 ..implodeを使用してjavasciriptで分割することです。split

ただし、最良の方法はecho json_encode($id_array)、配列をjavascriptオブジェクトに変換するようにphpで使用することです。

于 2013-03-08T13:11:34.523 に答える
1

javascriptの文字列リテラルを引用符で囲んでマークする必要があります。

var array_name = ["Pippa","Pippa Smith","Pippa Smith"];

json_encode()を使用して、php値から有効なjavascriptオブジェクトリテラルを取得します。


補足:データの構造をから変更する理由

[1] x y z
[2] X Y Z

 [1]  [2]
  x    X
  y    Y
  z    Z

array_ID, array_name, array_arrival, array_departureつまり、すべての情報を保持する1つの配列ではなく、これらの個別の変数があるのはなぜですか?

于 2013-03-08T13:10:24.987 に答える