簡體   English   中英

選擇 <options> jQuery加載的未序列化

[英]Select <options> loaded by jquery not getting serialized

我已經加載了表格。 表單中有一個選擇區域,更改后將調用一個ajax查詢以加載並顯示第二級選擇區域

$('.subjectareaid').change (function ()
     {
      var selected = $(this);
      var ssindex = selected.closest("tr").index()+1;
      var putid = '#subsub'+ssindex;
      var pdata = 'subjectareaid='+selected.val();
      $.ajax({
         type   : "POST",
         cache  : false,
         url    : "a_subsubject.php",
         data   : pdata,
         success: function(data) {
          $(putid).html(data);
          $(putid).removeClass('hideme');
         }
      });
     });

a_subsubject.php文件創建要返回的選項列表

 <option value=".$row['subsubjectid']."> ".$row['subsubjectname']

修改后的HTML是一個表,表中是行。 該行如下所示:

$outline .= "<tr><td>".$oline."Question ".$k."</td><td valign=bottom><select name=dif[".$j."]>".$difsel."</select></td><td valign=bottom><select class=subjectareaid name=sub[".$j."]>".$subsel."</select></td><td valign=bottom><select class=hideme id=subsub".$j." value=subsub[".$j."]><option value=0></select></td></tr>";

其中$ oline是空白或節名稱,$ k是問題編號,$ j是索引(1-54),$ difsel是select語句的選項,$ subsel是select語句的選項,並且設置了第三個選擇到一個選項,並與hideme類一起隱藏。 另外,它還有一個ID,該ID允許HTML重新填充由a_subsubject.php ajax調用返回的選項。

該表全部包裝成表格

 <form id=deform1>

提交表單后,將運行以下jquery:

     var formser =  $('#deform1').serialize();
     var crud = "&crud=scd";
     var scorecardid = '&scorecardid='+ escape($('input[name=id]').val());
     var pdata = formser+'&action=cru'+crud+scorecardid;

然后將其發送到ajax例程,其中pdata是要傳遞給CRUD程序以更新數據庫的數據。

從問題1、21和39的所有三個選擇值中進行選擇的結果(從警報中顯示)為:{id = 1是一個隱藏字段,當它被捕獲並作為計分心發送時,接收代碼會忽略該隱藏字段稍后在帖子字符串中}

id = 1&dif%5B1%5D = 0&sub%5B1%5D = 2&dif%5B2%5D = 0&sub%5B2%5D = 0&dif%5B3%5D = 0&sub%5B3%5D = 0&dif%5B4%5D = 0&sub%5B4%5D = 0&dif%5B5%5D = 0&sub%5B5%5D = 0&dif%5B6%5D = 0&sub%5B6%5D = 0&dif%5B7%5D = 0&sub%5B7%5D = 0&dif%5B8%5D = 0&sub%5B8%5D = 0&dif% 5B9%5D = 0&sub%5B9%5D = 0&dif%5B10%5D = 0&sub%5B10%5D = 0&dif%5B11%5D = 0&sub%5B11%5D = 0&dif%5B12%5D = 0&sub%5B12%5D = 0&dif%5B13% 5D = 0&sub%5B13%5D = 0&dif%5B14%5D = 0&sub%5B14%5D = 0&dif%5B15%5D = 0&sub%5B15%5D = 0&dif%5B16%5D = 0&sub%5B16%5D = 0&dif%5B17%5D = 0&sub%5B17%5D = 0&dif%5B18%5D = 0&sub%5B18%5D = 0&dif%5B19%5D = 0&sub%5B19%5D = 0&dif%5B20%5D = 0&sub%5B20%5D = 0&dif%5B21%5D = 3&sub% 5B21%5D = 4&dif%5B22%5D = 0&sub%5B22%5D = 0&dif%5B23%5D = 0&sub%5B23%5D = 0&dif%5B24%5D = 0&sub%5B24%5D = 0&dif%5B25%5D = 0&sub%5B25% 5D = 0&dif%5B26%5D = 0&sub%5B26%5D = 0&dif%5B27%5D = 0&sub%5B27%5D = 0&dif%5B28%5D = 0&sub%5B28%5D = 0&dif%5B29%5D = 0&sub%5B29%5D = 0&dif%5B30%5D = 0&sub%5B30%5D = 0&dif%5B31%5D = 0&sub%5B31%5D = 0&dif%5B32%5D = 0&sub%5B32%5D = 0&dif%5B33%5D = 0&sub%5B33%5D = 0&dif% 5B34%5D = 0&sub%5B34%5D = 0&dif%5B35%5D = 0&sub%5B35%5D = 0&dif%5B36%5D = 0&sub%5B36%5D = 0&dif%5 B37%5D = 0&sub%5B37%5D = 0&dif%5B38%5D = 0&sub%5B38%5D = 0&dif%5B39%5D = 2&sub%5B39%5D = 3&dif%5B40%5D = 0&sub%5B40%5D = 0&dif%5B41% 5D = 0&sub%5B41%5D = 0&dif%5B42%5D = 0&sub%5B42%5D = 0&dif%5B43%5D = 0&sub%5B43%5D = 0&dif%5B44%5D = 0&sub%5B44%5D = 0&dif%5B45%5D = 0&sub%5B45%5D = 0&dif%5B46%5D = 0&sub%5B46%5D = 0&dif%5B47%5D = 0&sub%5B47%5D = 0&dif%5B48%5D = 0&sub%5B48%5D = 0&dif%5B49%5D = 0&sub% 5B49%5D = 0&dif%5B50%5D = 0&sub%5B50%5D = 0&dif%5B51%5D = 0&sub%5B51%5D = 0&dif%5B52%5D = 0&sub%5B52%5D = 0&dif%5B53%5D = 0&sub%5B53% 5D = 0&dif%5B54%5D = 0&sub%5B54%5D = 0&action = cru&crud = scd&scorecardid = 1

如您所見,dif%5B1%5D = 0&sub%5B1%5D = 2&dif%5B2%5D = 0&sub%5B2%5D = 0這表明sub [1]已設置為2。這導致subsub1加載了選擇選項集,然后顯示。 做出了選擇選項(第二項),但是表單數據的序列化未捕獲subsub [1]。 [這也在記錄21和記錄39中完成]。

在進行序列化以捕獲添加了第三個jquery的select值之前,我是否缺少某種“更新”表單的方式?

好的,代碼在一個文件中是300行,在另一個文件中是400行...

 $outline .= "<tr><td>".$oline."Question ".$k."</td><td valign=bottom><select name=dif[".$j."]>".$difsel."</select></td><td valign=bottom><select class=subjectareaid name=sub[".$j."]>".$subsel."</select></td><td valign=bottom><select class=hideme id=subsub".$j." value=subsub[".$j."]><option value=0></select></td></tr>";

看起來不錯,但是這一行代碼中只有一個錯誤。

<td valign=bottom><select class=hideme id=subsub".$j." value=subsub[".$j."]><option value=0></select>

select語句不具有“值”,它們具有“名稱”。

浪費25個小時的時間來浪費大量的HTML代碼。 好吧,我覺得很愚蠢。 令人難以置信,我早在1997年就為Prentice Hall寫了關於CGI編程的血腥書。我很高興我使用了anon手柄,而現在沒有我自己的名字。 :-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM