Form elemanları zaten PHP seçilir hangi göstermek için nasıl

3 Cevap php

Nasıl bu kod zaten seçili olan seçeneği göstermek için alabilirim?

Bu temelde bir düzenleme sayfası ve veritabanından bilgi çekerek ve göreli alanları doldurma edilir

Ben bazı unsurları ile birlikte bir açılır menü, çoklu seçme kutusunu ve bir sayfada radyo düğmeleri var. Bilgi ince elemanlar görüntülenir oluyor, ama onlar veritabanından bilgi eşleşirse s ve radyo düğmeleri seçilmiş görüntülemek için nasıl çalışmak değildir.

kodu:

<select name="client">


    <option value="empty">Change Client...</option>
 <?php
                $result2 = mysql_query("SELECT name FROM clients") or die("Database query failed: " . mysql_error());    

while($row = mysql_fetch_assoc($result2)) {
    $clientlist = $row['name'];
    $clientname = htmlspecialchars($row['name']);

    if ($_POST['client'] == $clientlist)
    { 

    echo '<option value="' . $clientlist . '" selected="selected" >' . $clientname . '</option>' . '\n';
    }
    else{
    echo '<option value="' . $clientlist . '" >' . $clientname . '</option>' . '\n';
}
}


?>
</select>

    </p>
<p class="subheadsmall">Core Classification</p>

<?php

switch ($niche) {
    case "brand":
        echo '<input type="radio" name="niche" value="Brand" checked="checked" />Brand';
        echo '<input type="radio" name="niche" value="Marketing" />Marketing';
        echo '<input type="radio" name="niche" value="Communication" />Communication';
        break;
    case "marketing":
        echo '<input type="radio" name="niche" value="Brand" />Brand';
        echo '<input type="radio" name="niche" value="Marketing" checked="checked" />Marketing';
        echo '<input type="radio" name="niche" value="Communication" />Communication';
        break;
    case "communication":
        echo '<input type="radio" name="niche" value="Brand" />Brand';
        echo '<input type="radio" name="niche" value="Marketing" />Marketing';
        echo '<input type="radio" name="niche" value="Communication" checked="checked" />Communication';
        break;
    default;
        echo '<input type="radio" name="niche" value="Brand" />Brand';
        echo '<input type="radio" name="niche" value="Marketing" />Marketing';
        echo '<input type="radio" name="niche" value="Communication" />Communication';
    break;
}

?>

<p class="subheadsmall">Strategies</p>

<p class="sidebargrey">

<?php

    		$result = mysql_query("SELECT strategies FROM studies WHERE id = '$id';
    			if (!$result) {
    				die("Database query failed: " . mysql_error());
    			}

while($row = mysql_fetch_array($result)) {
    $strategyname = $row['strategies'];


    echo $strategyname.'<br />';
}

?>
        <p class="subheadsmall">Add a strategy... (hold down command key to select more than one)</p>

<select name="strategies[]" multiple="multiple">
     <?php

    		$result = mysql_query("SELECT * FROM strategies");
    			if (!$result) {
    				die("Database query failed: " . mysql_error());
    			}

while($row = mysql_fetch_array($result)) {
    $strategylist = $row['name'];
    $strategyname = htmlspecialchars($row['name']);
$pagelink = str_replace(" ","_",$strategylist);

    echo '<option value="<a href=&quot;strategies.php?strategy=' . $pagelink . '&quot;>'.$strategyname.'</a>" >' . $strategyname . '</option>' . '\n';
}

?>
    </p>

3 Cevap

OPTION HTML Spec

Değiştir Seçilen = sadece seçili için "seçilmiş". Bu özellik bir atama ihtiyacı yok gibi görünüyor.

Ayrıca, sadece atama true değerlendirmek emin olmak için çıkış davranıyor HTML kontrol etmek isteyebilirsiniz.

Bunu yapmak için javascript kullanabilirsiniz. Benim örnek Jquery kullanır

Önce onay kutularını her bir id vermek yani

echo '<input type="radio" name="niche" id="brand" value="Brand" />Brand';
echo '<input type="radio" name="niche" id="marketing" value="Marketing" />Marketing';
echo '<input type="radio" name="niche" id="communication" value="Communication" />Communication';

Sonra JS olurdu

$( "brand" ).attr( "checked", true ); // this would check the brand box

Gerektiği gibi Yani sadece bu yazabilirsiniz.

Sen - eğer mümkünse - döngü için bir radyo baskıların olduğunu grubunu değiştirmek. Sonra böyle bir şey yapabilirsiniz:

foreach ($possibleRadios as $key => $val)
{ 
    echo '<input type="radio" name="' . $val->name . '" value="' . $val->id . '" ' .  ($isSelected($val->id) ? 'selected="selected' : '') . ' />$val->prettyName';
}