2012-06-13 3 views
0

Интересно, может ли кто-нибудь помочь мне.Если isset для нескольких кнопок отправки

Я пытаюсь запустить приведенный ниже код, который я использую с формой с несколькими submit buttons.

<?php 
if (isset($_POST['type']){ 
    if ($_POST['type'] == 'view'){ 
    $url = 'updatelocation.php'; 

    } elseif ($_POST['type'] == 'finds'){ 
     $url = 'addfinds.php'; 

    } elseif ($_POST['type'] == 'image'){ 

    header("Location: " . $url); 
} 
?> 

Проблема у меня в том, что, когда я запускаю это, я получаю следующее сообщение об ошибке:

Parse error: syntax error, unexpected '{' in /homepages/2/d333603417/htdocs/locationsaction.php on line 2

Я читал некоторые учебники, например this, и мой код похоже, соответствует примеру, поэтому я не уверен, где ошибка.

Для получения дополнительной информации, кнопки и формы, которые я использую для запуска PHP скрипт приведены ниже:

<form name="locations" id="locations" method="post" action="locationsaction.php"> 

<td><div align="center"><input name="viewdetails" type="submit" value="view"/></div>/td> 
<td><div align="center"><input name="addfinds" type="submit" value="finds"/></div></td> 
<td><div align="center"><input name="addimages" type="submit" value="images"/></div></td> 

Я просто подумал, может ли кто-то смотреть на это, пожалуйста, и дайте мне знать, куда я иду неправильно?

ответ

2

Вы пропускаете закрывающую скобку:

if (isset($_POST['type']) { 

Должно быть:

if (isset($_POST['type'])) { 

Вы также отсутствуют закрывающую скобку на последней строке. Вы действительно должны пытаться форматировать и отступать свой код должным образом. Это значительно облегчит выявление таких ошибок. Рассмотрим следующий пример:

<?php 
if (isset($_POST['type'])) { 
    if ($_POST['type'] == 'view') { 
     $url = 'updatelocation.php'; 
    } elseif ($_POST['type'] == 'finds') { 
        $url = 'addfinds.php'; 
    } elseif ($_POST['type'] == 'image'){ 
     $url = 'image.php'; 
    } 

    header("Location: " . $url); 
} 

Другой способ сделать поиск будет использовать карту:

<?php 
if (isset($_POST['type'])) { 
    $urls = array(
     'view' => 'updatelocation.php', 
     'finds' => 'addfinds.php', 
     'image' => 'image.php' 
    ); 
    $url = $urls[$_POST['type']]; 
    header("Location: " . $url); 
} 

Это довольно чистый - не так ли? Добавление нового случая в это просто вопрос добавления его в массив.

+0

Привет @alexn, спасибо большое за это. Это действительно полезно. Я отвечу на ваш ответ, как только пройденное время прошло. С наилучшими пожеланиями – IRHM

+0

@IRHM Нет проблем, удачи в вашем проекте :) – alexn

+0

@alexn Да, пойман этот недостающий кронштейн. Хороший глаз ;-) –

3

Вам не хватает ) после isset($_POST['type']) - вы не закрываете заявление if.

+0

Привет @ Kolink, спасибо за это, и за то, что нашли время, чтобы помочь мне. С наилучшими пожеланиями – IRHM

2

Вы также отсутствует закрывающая скобка:

if (isset($_POST['type'])){ 
    if ($_POST['type'] == 'view'){ 
    $url = 'updatelocation.php'; 
    }elseif ($_POST['type'] == 'finds'){ 
    $url = 'addfinds.php'; 
    }elseif ($_POST['type'] == 'image'){ 
    $url='image.php'; 
    } 
    header("Location: " . $url); 
} 
+0

Привет @Bonzo, спасибо, что нашли время, чтобы ответить на мой пост и помочь. Это очень ценится. С уважением – IRHM