Domanda

I want users to be able to see the name of all their odd jobs and descriptions and then be able to choose from a a list the days available for each odd job. Essentially I want the user to be displayed with their oddjob name, description, a list of days and then an update button and i want this to be repeated on the same page for each odd job so the user can see their current into, change it, select a day and hit update.

I'm trying to get the multiple list to work in php but i keep getting this error:

Parse error: syntax error, unexpected 'DaysAvailable' (T_STRING), expecting ',' or ';'

which relates to this line of code in the form:

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

update page:

<?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 on same page:

<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>";
                        }
?>

update function:

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());

}

Please help me implement this, thanks.

È stato utile?

Soluzione

You're echoing out a lot of HTML, using a " as a delimiter. Inside your HTML, you have:

<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>

That first quote is ending the echo, and the rest is being passed to PHP to interpret.

For a chunk of code like that, you might want to look at using a HEREDOC instead.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top