2016-05-24 2 views
1

У меня есть тэг select html. Мне нужно отобразить значения параметров в зависимости от названия задания в тексте ввода. Например. Если учетная запись задана, список позиций для учета будет отображаться в значениях параметров.Foreach inside Если isset не работает PHP

Но мой код не работает. Пожалуйста, помогите мне исправить :(

<select name="locations_list" id="filterbyhiringlocation"> 
    <option name="default" class="filter_by" selected="selected" value="Select by Location">Select by Location</option> 
    <?php 
    if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'Sales Associate'){ 
     foreach($query_hiring_location_mass as $option){ 
      echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
     } else { 
      echo '<option name="locations_list" class="filter_by" value="'. $option->hiring_location.'">'. $option->hiring_location .'</option>'; 
     } 
    } else if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'District Manager'){ 
     foreach($query_hiring_location_non_mass as $option){ 
      echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
     } else { 
      echo '<option name="locations_list" class="filter_by" value="'. $option->hiring_location.'">'. $option->hiring_location .'</option>'; 
     } 
    } 
     ?> 
</select> 

Ошибка:

Parse error: syntax error, unexpected 'else' (T_ELSE) 
+2

'else' оператор всегда использовать с' if' не с 'foreach', и здесь вы используете' else' с 'foreach' –

+0

, что является правильным способом? если название задания равно учету, список местоположений для этого названия задания будет отображаться в значениях опций, и если учет не выполняется, список местоположений для учета не будет отображаться в значениях параметра, используя только один тэг html, только – User014019

ответ

2

Ваш код должен выглядеть так:

<?php 
$hiring_location = 'YOUR DEFAULT LOCATION'; 
?> 
<select name="locations_list" id="filterbyhiringlocation"> 
    <option name="default" class="filter_by" selected="selected" value="Select by Location">Select by Location</option> 
    <?php 
    if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'Sales Associate'){ 
     if(count($query_hiring_location_mass)) { 
      foreach($query_hiring_location_mass as $option){ 
       echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
      } 
     } 
     else { 
      echo '<option name="locations_list" class="filter_by" value="'. $hiring_location.'">'. $hiring_location .'</option>'; 
     } 
    } else if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'District Manager'){ 
     if(count($query_hiring_location_non_mass)) { 
      foreach($query_hiring_location_non_mass as $option){ 
       echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
      } 
     } 
     else { 
      echo '<option name="locations_list" class="filter_by" value="'. $hiring_location.'">'. $hiring_location .'</option>'; 
     } 
    } 
     ?> 
</select> 
+0

в '$ hiring_location', я поставлю запрос select, чтобы получить список адресов правильно? – User014019

+0

Что делать, если у вас нет местоположений в вашем db ... если вы не хотите показывать местоположение по умолчанию, тогда просто удалите условие else. Я предположил, что местоположение по умолчанию, например. Мумбаи, Пуне и др. Не записывайте в него запрос. – sAcH

1

ваш код должен нравится это:

<select name="locations_list" id="filterbyhiringlocation"> 
    <option name="default" class="filter_by" selected="selected" value="Select by Location">Select by Location</option> 
    <?php 
    if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'Sales Associate'){ 
     foreach($query_hiring_location_mass as $option){ 
      if ($option->hiring_location == $yourLocation) { 
       echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
      } else { 
       echo '<option name="locations_list" class="filter_by" value="'. $option->hiring_location.'">'. $option->hiring_location .'</option>'; 
      } 
     } 
    } else if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'District Manager'){ 
     foreach($query_hiring_location_non_mass as $option){ 
      if ($option->hiring_location == $yourLocation) { 
       echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
      } else { 
       echo '<option name="locations_list" class="filter_by" value="'. $option->hiring_location.'">'. $option->hiring_location .'</option>'; 
      } 
     } 
    } 
     ?> 
</select> 

Здесь $yourLocation должен быть таким же согласно вашему требованию, т.е., который вы хотите показать выбранный

+0

, поэтому я буду определять запрос в этой переменной '$ yourLocation'? – User014019

+0

no.' $ yourLocation' - это то место, которое вы хотите отобразить. например, «Нью-Йорк» (используйте динамически согласно вашему требованию) –

+0

да, место найма из таблицы базы данных, поэтому мне нужно выполнить запрос до того, как я динамически покажу его в значениях параметров. например $ query_hiring_location_non_mass = $ wpdb-> get_results ('SELECT DISTINCT hiring_location FROM resume_location WHERE hiring_location = "Юта" ORDER BY hiring_location ASC', OBJECT); – User014019

0

@user я думаю, что вы пропустили два цветка скобку, чтобы закрыть использование петли вместо этого:

if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'Sales Associate'){ 
     foreach($query_hiring_location_mass as $option){ 
      echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
} 
     } else { 
      echo '<option name="locations_list" class="filter_by" value="'. $option->hiring_location.'">'. $option->hiring_location .'</option>'; 
     } 
    } else if(isset($_POST['jobTitle']) && $_POST['jobTitle'] == 'District Manager'){ 
     foreach($query_hiring_location_non_mass as $option){ 
      echo '<option name="locations_list" class="filter_by" selected value="'. $option->hiring_location .'">'. $option->hiring_location .'</option>'; 
     } 
} else { 
      echo '<option name="locations_list" class="filter_by" value="'. $option->hiring_location.'">'. $option->hiring_location .'</option>'; 
     } 
    } 
+0

Как я могу получить '$ option-> hiring_location' в' '' '' '' –

+0

@Ranjith удаляет цветочные скобки из цикла и попробует посмотреть, какой ответ вы получите. например: 'foreach ($ query_hiring_location_non_mass as $ option) echo ' '; } else { echo ' '; } ' – shan2batman

+0

@ Ranjith сделал это – shan2batman

Смежные вопросы