2015-03-03 3 views
-1

У меня есть проблема, как вы, ребята, можете видеть в моем коде, я получил прокрутку через мою папку img, показывая все изображения, ну и я оставил правильный стиль изображений, так как проблема является формой внутри каждого изображения.

Мне нужно получить значение с радиовхода, поэтому я могу сказать, что мой другой скрипт выбирает всю информацию из БД, где идентификатор имеет то же значение, что и вход.

и мне нужно было утверждение if, чтобы, если ничего не установлено, я могу показать что-то, говоря, что вам нужно выбрать радио, прежде чем вы сможете слушать какие-либо станции.

, но мой, если оператор продолжает показывать «ошибку», даже то я нажимаю на кнопки

я надеюсь, что кто-нибудь может помочь мне :)

if(isset($_POST['submitRadio')): 
    $test = $_POST['radio']; 
    echo $test; 
else: 
    echo 'error'; 
endif; 

foreach(glob('img/radios/big/*.png') as path): 
    printf(' 
     <form method="post"> 
      <input class="hidden" type="text" name="radio" value="1"> 
      <input type="submit" name="submitRadio" value="Go!"> 
     </form> 
    '); 
endforeach; 

после того, как делать то, что сказал мне GolezTrol сделать:

<div class="row text-center"> 
       <?php 
       $sql = "SELECT * FROM radio"; 

       $stmt = $Db->dbh->prepare($sql); 
       $stmt->execute(); 

       $result = $stmt->fetchAll(); 

       if(isset($_POST['submitRadio'])): 
        $test = $_POST['submitRadio']; 
        echo $test; 
       else: 
        echo 'error'; 
       endif; 

       ?> 

       <form method="post"> 

       <? 
       foreach($result as $radio): 

        printf(' 

        <button type="submit" 
          name="submitRadio" 
          value="'.$radio['id'].'"> 
        Go! 
        </button> 

        '); 
       ?> 

       </form> 
+0

делать var_dump ($ _ POST) на вершине, чтобы увидеть то, что отправил от формы – Kamran

+2

HTML формы основы 101: Только В представленных данных включены переключатели _checked_. Ваш не проверен - поэтому пара имени = значение не получает для них отправку. – CBroe

ответ

2

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

Чтобы решить вашу проблему, вы можете использовать button вместо input для отправки формы. В кнопке вы можете сделать подпись и значение друг от друга, поэтому вы можете просто поместить id (или имя файла, или что вам нужно) в значение кнопки и вообще не нужно скрытый ввод. Содержание кнопки тега подпись он получает, таким образом, код может выглядеть следующим образом:

if(isset($_POST['selectedFile')): 
    $test = $_POST['selectedFile']; 
    echo $test; 
else: 
    echo 'error'; 
endif; 

?><form method="post"><? // Open the form outside of the loop 

foreach(glob('img/radios/big/*.png') as path): 
    // Not sure what you want to do here. Put the filename instead of 
    // "1" in the value? 
    $filename = basename($path, '.png'); 
    ?> 
     <button type="submit" 
       name="selectedFile" 
       value="<?=$filename?>"> 
     Go! 
     </button> 
    <? 
endforeach; 

?></form><? // Close the form 

В этом примере я вытащил тег формы из цикла, потому что строго необходимо только одну формы. Но поскольку в настоящее время нет радиообъектов, вы также можете иметь одну форму на кнопку. Он по-прежнему будет работать.

Кстати, я заметил, что вы упомянули базу данных в своем комментарии. Конечно, я не учитывал это, так как вы не упомянули об этом в вопросе. Во всяком случае, он не должен менять основную концепцию, только способ определения «значения».

+0

плохо дать, что идти сейчас, кстати, мне нужно разместить мой скрипт под формой или выше или вообще не имеет значения? –

+0

Вы имеете в виду проверку «если»? Не имеет большого значения, хотя я могу представить, что если значение опубликовано, вы не хотите показывать форму вообще. В этом случае я бы сказал выше, поэтому вы можете пропустить создание формы. – GolezTrol

+0

хорошо, что вы работаете с именами файлов, но я буду работать с БД и идентификаторами, я заберу весь db, плохо сделаю, что мой db будет первым, я думаю :) –

0

Во-первых, код значения в радиотеке всегда равен 1. Поэтому, если выбран какой-либо переключатель, вы всегда будете получать 1. Вместо этого в параметре value должно быть имя файла. Таким образом, вы узнаете, какое изображение (переключатель) выбрано.

Ибо никто из изображения (кнопка радио) выбран, вы можете использовать

if (!isset($_POST['radio']))<br>{<br>//php code }      
Смежные вопросы