2017-01-19 1 views
0

У меня есть имена в моей базе данных, как показано ниже ...Как сделать эхо мои отмеченные флажки?

enter image description here

С кодом ниже я вижу этих пользователей на моей странице с флажком рядом с ними.

$select_from_user_table = "SELECT contacts.contact_id, user.username 
FROM contacts 
INNER JOIN user 
ON contacts.contact_id=user.user_id WHERE contacts.user_id = '$user_id'"; 

    //get the result of the above 
    $result2=mysqli_query($con,$select_from_user_table); 
    //show the usernames, phone numbers 
    while($row = mysqli_fetch_assoc($result2)) { 
    echo "<input type='checkbox' name='check_contacts[]' >" . $row['username'] . "<br>"; 


if(!empty($_POST['check_contacts'])) { 
    foreach($_POST['check_contacts'] as $check) { 
      echo $check; //echoes the value set in the HTML form for each checked checkbox. 
         //so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5. 
         //in your case, it would echo whatever $row['Report ID'] is equivalent to. 
    } 
} 
    } 
    $con->close(); 

Как я могу это так, когда флажки проверяются, результат будет вторит как Will Shakespeare John Grisham если эти имена проверяются? Я бы подумал в input type части я бы просто поставил

value=" $row['username'] " 

, но он не работает.

+0

ваши флажки не имеют 'value' установить на них ..! – BizzyBob

+1

изменить эту часть: '" "' – BizzyBob

+0

: "' – BizzyBob

ответ

0

Этот код делает это для меня:

//this code below will get the username of contacts 
// for $user_id 
$select_from_user_table = "SELECT contacts.contact_id, user.username 
FROM contacts 
INNER JOIN user 
ON contacts.contact_id=user.user_id WHERE contacts.user_id = '$user_id'"; 

    //get the result of the above 
    $result2=mysqli_query($con,$select_from_user_table); 
    ?> 

     <form action="" method="post"> 
    <?php 
    //show the usernames, phone numbers 
    while($row = mysqli_fetch_assoc($result2)) { ?> 
    <input type='checkbox' name='check_contacts[]' value='<?=$row['username']?>'> <?php echo $row['contact_id'] ?> </br> 

     <?php 
     //we need the php bracket below to close the while loop 
} 

      ?> 
     <input type="submit" /> 
    </form> 

<?php 

if(!empty($_POST['check_contacts'])) { 
    foreach($_POST['check_contacts'] as $check) { 
      echo $check; //echoes the value set in the HTML form for each checked checkbox. 
         //so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5. 
         //in your case, it would echo whatever $row['Report ID'] is equivalent to. 
    } 
} 

    $con->close(); 

    ?> 
1

Вы хотите повторить форму, как следующее:

echo "<label><input type='checkbox' name='check_contacts[]' value='". $row['contact_id'] ."'>". $row['username'] ."</label>"; 

И при проверке я предлагаю использовать isset() первый перед тем !empty():

if(isset($_POST['check_contacts']) && !empty($_POST['check_contacts'])){ 
    foreach($_POST['check_contacts'] as $value){ 
    echo $value; 
    } 
} 

Если индекс не существует, то он не будет запросите предупреждение таким образом.

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

Также лучше использовать идентификатор как значение, потому что вы всегда можете запросить свою базу данных с ними.

+0

Я не мог заставить ваш код работать для меня, но +1 для идеи использования идентификатора как значения, что упрощает запрос к базе данных. – CHarris