Hinzufügen von Attribut option-element mit forms api : drupal 7

Möchte ich hinzufügen, dass title="icons/icon_cart.gif" für jede der folgenden Optionen in meiner select-Liste, die gerendert wird, mithilfe von Ansichten.

Nach versuchen und dem Lesen vieler Artikel, die ich kann nicht scheinen, einen Weg zu finden, zu fügen Sie diesen html-Code in meine form.

Unten ist mein code.

function customchatter_form_alter(&$form, &$form_state, $form_id) {

$form["tid"]["#options"][1]=t("nooo chatter");
//this works to change the label of the option but how do I add title="icons/icon-  
cart.gif" ?

}

Mein html-code:

<select id="edit-tid" name="tid" class="form-select">
<option value="All">- Any -</option>
<option value="1">nooo chatter</option>
<option value="2">Complaints Complaints</option>
<option value="3">Gear &amp; Gadgets</option>
</select>

Cheers,
Vishal

UPDATE
Ich habe versucht, aktualisieren Sie den code wie pro Clive Ratschläge, aber die Werte sind immer noch nicht kommen, bis Sie rechts. Unten ist meine Geschichte.

So unten ist der html-Ausgabe bin ich in der Lage zu erreichen, aber der Titel scheint immer die Nummer 1.

<select id="edit-select" class="form-select" name="select">
<option value="1" title="1">One</option>
<option value="2" title="1">Two</option>
</select>

Wie Sie sehen können Titel ist da, aber der Wert ist falsch. Unten ist meine form und die Funktionen, die ich schrieb.

Meine form:

$form['select'] = array(
'#type' => 'select',
'#options' => array(1 => 'One', 2 => 'Two'),
'#title' => array(1 => 'One', 2 => 'Two') 
//I tried many combinations but nothing seems to work.
);

Mein Thema Funktionen.

function kt_vusers_select($variables) {
$element = $variables['element'];
element_set_attributes($element, array('id', 'name', 'size'));
_form_set_class($element, array('form-select'));

return '<select' . drupal_attributes($element['#attributes']) . '>' .    
kt_vusers_form_select_options($element) . '</select>';
}


function kt_vusers_form_select_options($element, $choices = NULL) {

if (!isset($choices)) {
$choices = $element['#options'];
}
//array_key_exists() accommodates the rare event where $element['#value'] is NULL.
//isset() fails in this situation.
$value_valid = isset($element['#value']) || array_key_exists('#value', $element);


//@vishal  so there I have declared the variable to accept the values.
$vtitle = isset($element['#title']) || array_key_exists('#title', $element);


$value_is_array = $value_valid && is_array($element['#value']);
$options = '';
foreach ($choices as $key => $choice) {
if (is_array($choice)) {
  $options .= '<optgroup label="' . $key . '">';
  $options .= form_select_options($element, $choice);
  $options .= '</optgroup>';
}
elseif (is_object($choice)) {
  $options .= form_select_options($element, $choice->option);
}
else {
  $key = (string) $key;
  if ($value_valid && (!$value_is_array && (string) $element['#value'] === $key || 
($value_is_array && in_array($key, $element['#value'])))) {
    $selected = ' selected="selected"';
  }
  else {
    $selected = '';
  }

 //@vishal this is where the variable is being used.

 $options .= '<option title="'.$vtitle.'" value="' . check_plain($key) . '"' . $selected . 
 '>' . check_plain($choice) . '</option>';
}
}
return $options;
}

unten ist der richtige code für das Letzte Thema Funktion

function kt_vusers_form_select_options($element, $choices = NULL, $vtitles=NULL) {
//Build up your own version of form_select_options here
//that takes into account your extra attribute needs.
//This will probably involve inspecting your custom FAPI property,
//which we'll call #extra_option_attributes

if (!isset($choices)) {
$choices = $element['#options'];
$vtitles = array();
$vtitles = $element['#title'];
}
//array_key_exists() accommodates the rare event where $element['#value'] is NULL.
//isset() fails in this situation.
$value_valid = isset($element['#value']) || array_key_exists('#value', $element);

$value_is_array = $value_valid && is_array($element['#value']);
$options = '';

// print_r($vtitles);

während
(
(list($key, $Auswahl) = each($Auswahl))
&& (list($keytwo, $vtitle) = each($vtitles))
)
{
//printf("%s => %s, %s => %s \n", $key1, $Wert1, $key2, $Wert2);

 if (is_array($choice)) {
    $options .= '<optgroup label="' . $key . '">';
    $options .= kt_vusers_form_select_options($element, $choice);
    $i++;
    //$options .= form_select_options($element, $vtitle);
    $options .= '</optgroup>';
    } //end if if is_array

 elseif(is_object($choice)) {
  $options .= form_select_options($element, $choice->option);
  } //end of else if



else {
      $key = (string) $key;
  if ($value_valid && (!$value_is_array && (string) $element['#value'] === $key ||  
($value_is_array       && in_array($key, $element['#value'])))) {
    $selected = ' selected="selected"';
    }
  else {
    $selected = '';
  }
  //$options .= '<option title="'.$vtitle.'" value="' . check_plain($key) . '"' . 
  $selected . '>' . check_plain($choice) . '</option>';


 }

 $options .= '<option value="'. check_plain($key) .'" title="' . $vtitle . '"' . $selected 
 .'>'. check_plain($choice) .'</option>';



 } //end of choice



return $options;


} //end of function
Ihre ist eine offene Frage, die drupal.org/node/342316

InformationsquelleAutor Vishal Khialani | 2012-02-13

Schreibe einen Kommentar