Jquery - 如何选择PHP生成的选项

时间:2013-02-18 14:27:49

标签: php jquery select include

我有一个由php生成的选择。

<div id="panneauModifAnnonce" class="divAdmin">
<form id="modifierAnnonceForm">

<label class ="labelEmail">ID</label>
<input id="inp_idAnnonce" class ="inputEmail" />

<label class ="labelEmail">Titre</label>
<input id ="inp_titreAnnonce" class ="inputEmail" />

<label class ="labelEmail">Description</label>
<textarea id ="inp_txtDescription" class ="inputEmail" maxlength="500" ></textarea>

<label class ="labelEmail">Taille</label>
<select id ="inp_selectTaille" class ="inputEmail">
<option value="" selected="selected"> </option>
<optgroup label="Taille">
<option value="XS-36">XS-36 </option>
<option value="S-38">S-38 </option>
<option value="M-40">M-40 </option>

</optgroup>
<optgroup label="Pointure">                                                 
<option value="36">36 </option>
<option value="37">37 </option>
<option value="38">38 </option>

</optgroup>                                                
</select>

<label class ="labelEmail">Couleur</label>
<input id="inp_couleurAnnonce" class ="inputEmail" />

<label class ="labelEmail">Marque</label>
<input id ="inp_marqueAnnonce" class ="inputEmail" />

<label class ="labelEmail">Prix</label>
<input id ="inp_prixAnnonce" class ="inputEmail" />

<label class ="labelEmail">Annonceur</label>
<input id ="inp_annonceur" class ="inputEmail" />

<label class ="labelEmail">Catégories</label>
<select id ="inp_selectCatAnnonces" class ="inputEmail">
<option value="" selected="selected"> </option>
   <?php include_once 'includes/inc_selectCategories.php'; ?>
</select>

<label class ="labelEmail">Validité</label>
<div>
   <input type="radio" name="rad_valid" id ="inp_radValide" value ="1" /><span>Oui</span>
   <input type="radio" name="rad_valid" id ="inp_radinvalide" value ="0" /><span>Non</span>
</div>
<input type="submit" name="submit_modifier" value="Enregistrer les modifications" />
<input type="button" name ="btn_annulerModif" value ="Annuler" />
</form>
</div><!-- panneauModifAnnonce-->

我正在尝试使用jquery来获取和选择值,但似乎jquery不喜欢include函数。我读过其他一些帖子,但我认为他们不会谈论同样的问题。任何帮助都会很棒!谢谢!

Jquery代码:

$(document).ready(function(){
    $("#btn_modifierAnnonce").click(function(){

        $.each($("input[type='checkbox']:checked"), function(){
            //attribution des données au champs correspondant et sauvegarde de la valeur du champs
            var id = $(this).parent().parent().find("td:eq(0)");
            $("#inp_idAnnonce").val(id.text());

            var titre = $(this).parent().parent().find("td:eq(1)");    //  eq(2) = cherche le 2è element qui correspond au sélécteur                                                
            $("#inp_titreAnnonce").val(titre.text());

            var description = $(this).parent().parent().find("td:eq(2)");
            $("#inp_txtDescription").val(description.text()); 

            var taille = $(this).parent().parent().find("td:eq(4)");            
            $("#inp_selectTaille option[value="+taille.text()+"]").attr('selected','selected');

            var couleur = $(this).parent().parent().find("td:eq(5)");
            $("#inp_couleurAnnonce").val(couleur.text());

            var marque = $(this).parent().parent().find("td:eq(6)");
            $("#inp_marqueAnnonce").val(marque.text());

            var prix = $(this).parent().parent().find("td:eq(8)");
            $("#inp_prixAnnonce").val(prix.text()); 

            //it doesnt work only for this case.. 
            var categorie = $(this).parent().parent().find("td:eq(7)");
            $('#inp_selectCatAnnonces option[value="'+categorie.text()+'"]').attr('selected','selected');

            var annonceur = $(this).parent().parent().find("td:eq(9)");
            $("#inp_annonceur").val(prix.text());

            var validite = $(this).parent().parent().find("td:eq(10)");
            if(validite.text()=="1"){
                $('#inp_radValide').attr('checked','checked');                        
            }
            else{
                $('#inp_radinvalide').attr('checked','checked');                        
            }


        })//fin $.each(input select)
    })//fin $(#btn_modifierAnnonce).click
 })//fin document.ready

我使用var categories获得正确的值,但我无法自动选择select

中的值

4 个答案:

答案 0 :(得分:0)

这就是val()函数的用途:

$("#inp_selectCatAnnonces").val('newlyselectedvalue');

并使用以下内容获取所选值:

$("#inp_selectCatAnnonces").val();

答案 1 :(得分:0)

您可能会遇到引号和值属性的问题。尝试结合简单和双引号,如下所示:

$('#inp_selectCatAnnonces option[value="'+categorie.text()+'"]').attr('selected', true);

答案 2 :(得分:0)

首先,只需删除selected="selected"即可。因为默认情况下,第一个元素是选择

然后像你一样包括你的includes/inc_selectCategories.php。确保填充的数据是有效的HTML!使用FireBug或类似工具执行此操作。 (在大多数浏览器中为F12。)

然后将您的Javascript代码更改为:

// On DOM ready. This is very important!
$(function() {
    var categorie = $(this).parent().parent().find("td:eq(7)");
    // console.log ( categorie.text() ); // Make sure it returns a valid value!!

    // Select the right value from the dropdown
    $('#inp_selectCatAnnonces').val(categorie.text());
});

只需确保至少alert您尝试从categorie.text()获得的价值。我怀疑该值与<select>列表中的值不完全匹配。另外,请确保其中的values正确无误。

这是一个说明此行为的示例:

http://jsfiddle.net/3g4PU/

答案 3 :(得分:0)

对不起那些我困扰你的人:我自己找到了。

我检查PHP脚本,选项的值是id不正确的值!

感谢大家!