1

私は、ユーザーがすべての雑用ジョブの名前と説明を確認できるようにして、各雑用ジョブの空き日をリストから選択できるようにしたいと考えています。基本的に、ユーザーに奇妙な仕事の名前、説明、日のリスト、更新ボタンを表示して、奇妙な仕事ごとに同じページでこれを繰り返して、ユーザーが現在の状況を確認できるようにしたいと考えています。 、日を選択して更新を押します。

複数のリストをphpで動作させようとしていますが、このエラーが発生し続けます:

解析エラー: 構文エラー、予期しない 'DaysAvailable' (T_STRING)、',' または ';' が必要です

これは、次の形式のコード行に関連しています。

<select name="DaysAvailable[]" size="5" multiple="multiple" id="DaysAvailable[]">

更新ページ:

<?php   

            if (isset($_POST['OddJobName']) && isset($_POST['Description']) && isset($_POST['DaysAvailable']) && empty($errors) === true){//if (empty($_POST) === false && empty($errors) === true) { //if (isset(empty($_POST['OddJobName'])) && isset(empty($_POST['Description'])) && isset(empty($_POST['DaysAvailable'])) === false && empty($errors) === true)
            $daysavailable='';
            foreach ($_POST['DaysAvailable'] as $value)
            {

            $daysavailable .=$value." ";
            }

            $update_data = array (
                'MemberID'      => $MemberID,//$session_MemberID,//,$_SESSION['MemberID']
                'OddJobName'    => $_POST['OddJobName'],
                'Description'   => $_POST['Description'],
                'DaysAvailable' => $daysavailable, 

                );

                update_user ($update_data);

                if(success){
                 header('Location: member.php?username='.$username);
                 exit ();
                }
            } else if (empty($errors) === false){
                //otherwise output errors
                echo output_errors($errors);
            }


?>

同じページのフォーム:

<form action="" method ="post" enctype="multipart/form-data">
            <table width="100%" border="1" cellspacing="0" cellpadding="5">
                <td width="50%">
                <table width="100%" border="1" cellspacing="17" cellpadding="0">

<?php 

                    $result = mysql_query("SELECT * FROM `oddjob` WHERE `MemberID` = $MemberID");

                    while($row = mysql_fetch_assoc($result))
                    {
                    echo "<tr>
                        <td>
                        <p>Service Name:</p> 
                        </td>
                        <td>
                    <p>". $row['OddJobName']."</p>
                        </td>
                    </tr>
                    <tr>
                        <td>
                        <p>Description:</p>
                        </td>
                        <td>
                        <p>". $row['Description']."</p>
                        </textarea>
                        </td>
                    </tr>
                    <tr>
                        <td>
                        <p>Days Available(current week)*:</p>
                        <p>(hold Ctrl to select multiple)</p>
                        </td>
                        <td>
                        <select name="DaysAvailable[]" size="5" multiple="multiple" id="DaysAvailable[]">
                        "<option value="Monday">Monday</option>
                        <option value="Tuesday">Tuesday</option>
                        <option value="Wednesday">Wednesday</option>
                        <option value="Thursday">Thursday</option>
                        <option value="Friday">Friday</option>
                        <option value="Saturday">Saturday</option>
                        <option value="Sunday">Sunday</option>
                        </select>
                        </td>
                        <tr>
                </table>
                        <input type='submit'value='update'><input type='button'value='Back to profile' onClick="history.go(-1);return true;"><!--http://www.computerhope.com/issues/ch000317.htm-->
                </table>
                    </form>";
                        }
?>

更新機能:

function update_user($update_data){
            global $MemberID;
            $update = array();
            array_walk($update_data, 'array_sanitize');

            foreach($update_data as $field=>$data){ //loop through update data in update_info.php
                $update[] = '`' . $field . '` = \'' . $data . '\''; 
            }
            ("UPDATE `oddjob` SET " . implode(', ', $update). " WHERE `MemberID` = $MemberID") or die (mysql_error());

}

これを実装するのを手伝ってください、ありがとう。

4

1 に答える 1

3

"区切り文字として aを使用して、多くの HTML をエコーアウトしています。HTML 内には、次のものがあります。

<select name="DaysAvailable[]" size="5" multiple="multiple" id="DaysAvailable[]">
                    "<option value="Monday">Monday</option>
                    <option value="Tuesday">Tuesday</option>
                    <option value="Wednesday">Wednesday</option>
                    <option value="Thursday">Thursday</option>
                    <option value="Friday">Friday</option>
                    <option value="Saturday">Saturday</option>
                    <option value="Sunday">Sunday</option>
                    </select>

その最初の引用符は を終了してechoおり、残りは PHP に渡されて解釈されています。

そのようなコードのチャンクについては、代わりにHEREDOCの使用を検討することをお勧めします。

于 2013-04-11T17:00:52.713 に答える