2015-05-26 3 views
1

Вот сценарий. в моей базе данных, у меня есть 4 вопроса. у каждого вопроса есть отдельные 5 переключателей. Я попытался получить информацию из базы данных. он показывает мой список вопросов и переключателей по отдельности, но проблема BIG здесь состоит в том, что они находятся в одной группе. пример. в вопросе 1 я выбрал 1-ю радиокнопку, затем в вопросе 2 я выбрал 2-й переключатель. в вопросе 1, переключатель, который я выбираю, исчез. так в основном. весь цикл имеет одно имя кнопки радио. как я могу исправить это динамически? как автоматическая смена имени радио-кнопки для каждого вопроса?Как изменить имя переключателей из цикла while? php

<form method='post' action='test.php'> 
<?php 

include 'db_connect.php'; 

$query = "SELECT * FROM test"; 
$result = $conn->query($query); 
$num_results = $result->num_rows; 
#if ($num_results > 0) { 
#} 

while ($row = $result->fetch_assoc()) { 
    extract($row); 

    echo $row['test1']; 

    echo "<input type='radio' name='question_button' value='1'>"; 
    echo "<input type='radio' name='question_button' value='2'>"; 
    echo "<input type='radio' name='question_button' value='3'>"; 
    echo "<input type='radio' name='question_button' value='4'>"; 
    echo "<input type='radio' name='question_button' value='5'>"; 
    echo "<br>"; 

} 






$testbutton = isset($_POST['question_button']) ? $_POST['question_button'] : ""; 

if (isset($_POST['submit'])) { 
    echo $testbutton; 
} 


?> 

<html> 




<input type='submit' name='submit' value='submit'> 

</form> 


</html> 

here is the sample question

P.S. Редактировать. мое первоначальное намерение состоит в том, чтобы добавить или получить сумму переключателей. какой синтаксис я должен использовать?

+0

Что вы хотите изменить название вашей кнопки радио ??? – Saty

ответ

3

изменить название кнопки динамически изменение как следующий

$question=0; 
while ($row = $result->fetch_assoc()) { 
    extract($row); 

    echo $row['test1']; 
    $question++; 
    echo "<input type='radio' name=".$question." value='1'>"; 
    echo "<input type='radio' name=".$question." value='2'>"; 
    echo "<input type='radio' name=".$question." value='3'>"; 
    echo "<input type='radio' name=".$question." value='4'>"; 
    echo "<input type='radio' name=".$question." value='5'>"; 
    echo "<br>"; 

} 

$question только для примера,

вы можете изменить redio имя кнопки в соответствии с вашими потребностями.

+1

спасибо mate, это помогает – gigs

+0

@gigs рада помочь вам, если вы считаете, что это ответ, купите его как ответ, Счастливое кодирование – Thamaraiselvam

0

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

while ($row = $result->fetch_assoc()) { 
    extract($row); 

    echo "<input type='radio' name='".$row['question_name']."' value='".$row[question_id]."'>"; 
    echo "<br>"; 

}

Это должно сделать каждую коробку радио уникальной, пока данные в базе данных являются уникальными. Если это не поможет, могу ли я увидеть результаты запроса базы данных, и я могу отредактировать свой ответ.

+0

ok Я загрузил картинку, которая может быть действительно полезной – gigs

+0

, так что вы можете использовать предыдущие ответы, но нет какие данные вы вытаскиваете, они всегда будут пронумерованы от 1 до бесконечности в зависимости от того, насколько велика ваша петля foreach. Если вы хотите иметь больший контроль над данными, я бы посоветовал вам добавить два столбца в таблицу базы данных «question_name» и «question_id», а затем использовать для генерации радиокнопок. когда у вас есть 15 входов с только номерами для id, это может стать очень грязным и запутанным! –

0

Просто дайте кнопку RADIO имя группы по-разному, как показано ниже, например

// 1. Get the handler for counter. 
$counter = 1; 

// 2. Iterating through the results. 
while ($row = $result->fetch_assoc()) { 

    $name = "question_" . $counter . "_button"; 

    extract($row); 

    echo $row['test1']; 

    echo "<input type='radio' name=$name value='1'>"; 
    echo "<input type='radio' name=$name value='2'>"; 
    echo "<input type='radio' name=$name value='3'>"; 
    echo "<input type='radio' name=$name value='4'>"; 
    echo "<input type='radio' name=$name value='5'>"; 

    // Increment the counter by 1 for each question. 
    $counter += 1; 

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