通过这个选择去请求服务器的数据:<select name="goods_type" onchange="getAttrList(this.value)" style="border:1px solid #999;">
                  <option value="0">请选择商品类型</option>
                 <option label="音乐" value="6">音乐</option>
<option label="叉车" value="1">叉车</option>
                 </select>有一段html代码:<div id="goods_attr_val">/div>视图这里有一段js: function getAttrList(goodsAttrId)
{
        jQuery.ajax({ 
                type: "post", 
                url: "index.php?a=Ajax&m=findGoodsAttr", 
                data:'goodsAttrId='+goodsAttrId+'&action=getAttr',
                success: function (data) { 
          jQuery("#goods_attr_val").html(data)
                }, 
                error: function (XMLHttpRequest, textStatus, errorThrown) { 
                        alert(errorThrown); 
                } 
        });
}所以我用的就是点击这个下拉去触事件,然后ajax去获取服务端的表单数据,填写在<div id="goods_attr_val">/div>中。
服务端表单数据如下: /**
 * Ajax调用产品属性分类
 * @param int $goodsAttrId 商品属性id
 *@return string
 */
public function getGoodsAttr($goodsAttrId){
$goodsModel = new GoodsModel();
$findAll=$goodsModel->findAttrByParentId($goodsAttrId);
$temp='';
if(is_array($findAll) && count($findAll)>0){
foreach ($findAll as $key=>$val){
$temp.='<dd><strong>'.$val->name.':</strong><input type="text" class="text" name="goodsattr[]['.$val->name.']"/></dd>';
}
}
return $temp;
}
然后提交这个表单的时候,获取不到name=goodsattr的值。

解决方案 »

  1.   

    jQuery("#goods_attr_val").html(data)

    <div id="goods_attr_val"></div>
    不是表单元素也可以表单提交么?
      

  2.   

    我用AJAX获取了表单元素啊,插入在这个id下啊,难道这样不行?
      

  3.   

    那要看你的表单是怎么写的了我用AJAX获取了表单元素啊,插入在这个id下啊,难道这样不行?
      

  4.   

    我获取表单后,用firebug看的结果是这个:<div id="goods_attr_val">
    <dd><strong>经纪人:</strong><input type="text" class="text" name="goodsattr[][经纪人]"></dd><dd><strong>发布时间:</strong><input type="text" class="text" name="goodsattr[][发布时间]"></dd><dd><strong>歌手:</strong><input type="text" class="text" name="goodsattr[][歌手]"></dd><dd><strong>专辑:</strong><input type="text" class="text" name="goodsattr[][专辑]"></dd>
    </div>既然表单已经插入DOM结构里面了,应该可以获取得到name值才对啊。
      

  5.   

    指向商品购买的控制器,<form method="post" name="add" action="?a=goods&m=add">其它的name都可以获取到值,只有这个通过ajax获取服务端的数据时候插入DOM结构里,获取不到name值。
      

  6.   


    好吧,那我重新换个表单,用这个,这正规的应该能获取到值吧<dd><strong>经纪人:</strong><input type="text" class="text" name="goodsattr"></dd>可是结果很遗憾,仍然是没有获取到name值。
    有个问题就是ajax获取到的表单数据插入在DOM结构内,难道这样不行?
      

  7.   

    下面是完整的表单:<form method="post" name="add" action="?a=goods&m=add">
    <input type="hidden" name="flag" id="flag" />
    <dl class="form">
    <dd>商品类型:<select name="nav" id="nav">
    <option value="-1" selected="selected">--请选择一个商品的类型--</option>
    <optgroup label="环球脚轮">
    <option label="脚轮配件" value="36">脚轮配件</option> </optgroup>
    <optgroup label="物流仓储">
    <option label="仓储笼" value="32">仓储笼</option> </optgroup>
    <optgroup label="搬运车">
    <option label="手动搬运车" value="7">手动搬运车</option>
    <option label="电动手动车" value="8">电动手动车</option> </optgroup>
    <optgroup label="堆高车">
    <option label="手动堆高车" value="9">手动堆高车</option>
    <option label="半电动堆高车" value="10">半电动堆高车</option>
    <option label="全电动堆高车" value="11">全电动堆高车</option> </optgroup>
    <optgroup label="电动叉车">

    </optgroup>
    <optgroup label="内燃叉车">

    </optgroup>
    <optgroup label="货架">
    <option label="重型货架" value="13">重型货架</option>
    <option label="轻型货架" value="14">轻型货架</option>
    <option label="后推式货架" value="15">后推式货架</option>
    <option label="驶入式货架" value="16">驶入式货架</option>
    <option label="货架平台" value="17">货架平台</option>
    <option label="流利架" value="18">流利架</option>
    <option label="悬臂式货架" value="19">悬臂式货架</option>
    <option label="阁楼式货架" value="20">阁楼式货架</option>
    <option label="重型货架" value="21">重型货架</option>
    <option label="轻型货架" value="22">轻型货架</option>
    <option label="后操推式货架" value="23">后操推式货架</option>
    <option label="驶入式货架" value="24">驶入式货架</option>
    <option label="积层式货架" value="25">积层式货架</option> </optgroup>
    <optgroup label="空压">
    <option label="螺杆机" value="27">螺杆机</option>
    <option label="活塞机" value="28">活塞机</option>
    <option label="螺杆机" value="29">螺杆机</option>
    <option label="活塞机" value="30">活塞机</option>
    <option label="储气罐" value="31">储气罐</option> </optgroup>
    <optgroup label="五金">
    <option label="巨霸气动工具" value="34">巨霸气动工具</option>
    <option label="世达工具" value="35">世达工具</option> </optgroup>
    </select> <span class="red">[必选]</span>
    </dd> 
    <dd>商品品牌:<select name="brand" id="brand">
    <option value="-1" selected="selected">--请选择一个商品的品牌--</option>

    </select> <span class="red">[必选]</span>
    </dd>
    <dd>商品名称:<input type="text" name="name" class="text" /> <span class="red">[必填]</span> ( * 2-100字符之间 )</dd>
    <dd>自定属性:<input type="checkbox" name="flag[]" value="c" />推荐[c]</dd>
    <dd>订 货 量:<input type="text" name="more" class="text" />( 例:1-2台,1000元;2-4台,2000元;3-6台,5000元)</dd>
    <dd>商品编号:<input type="text" name="sn" id="sn" onblur="checkSn();" class="text" /> <span class="red">[必填]</span> ( * 2-50字符之间,唯一 )</dd>
    <dd>优 惠 价:<input type="text" name="price_sale" value="0" class="text small" id="sale" /> 市 场 价:<input type="text" name="price_et" value="0"  class="text small" id="price" /> 折 扣:<input type="text" name="discount" value="10"  class="text small" id="discount" onblur="keydownSale()"/> ( * 自动计算优惠价 )</dd>
    <dd>关 键 字:<input type="text" name="keyword" class="text" /> ( * 例:纯棉|换季|白色;每个关键字用'|'隔开)</dd>
    <dd>描  述:<input type="text" name="description" class="text" /> ( * 请简单描述下商品!)</dd>
    <dd>发货地点:<input type="text" name="sendaddress" class="text" /> ( * 卖家发货地址!)</dd>
    <dd>计量单位:<input type="text" name="unit" class="text small" /> 重  量:<input type="text" name="weight" value="0" class="text small" /> ( * 计量单位:个,kg,件;重量:默认kg)</dd>
    <dd>上传图片:<input type="text" name="thumbnail" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=thumbnail','upfile','400','150')" />
    <img name="pic" style="display:none;" /> ( * 保存图片完整性,最佳尺寸为:300 * 300  必须是jpg,gif,png,并且200k内)
    </dd>
    <dd><textarea id="TextArea1" name="content" class="ckeditor"></textarea></dd>
    <dd>是否上架:<input type="radio" name="is_up" value="1" checked="checked" />是 <input type="radio" name="is_up" value="0" />否  免 运 费:<input type="radio" name="is_freight" value="1" checked="checked" />是 <input type="radio" name="is_freight" value="0" />否</dd>
    <dd>库  存:<input type="text" name="inventory" value="100" class="text small" /> 库存告急:<input type="text" name="warn_inventory" value="1" class="text small" /> ( * 库存达到指定数量就会在后台提醒 )</dd>
    </dl>
    </div>
    <div class="tabcon" id="con_two_2" style="display:none;background:white;">
            <dl style='padding-left:80px;padding-bottom:30px;' class="form" id="form2">
                  <dd>
            <strong>商品类型:</strong>
                    <select name="goods_type" onchange="getAttrList(this.value)" style='border:1px solid #999;'>
                      <option value="0">请选择商品类型</option>
                     <option label="音乐" value="6">音乐</option>
    <option label="叉车" value="1">叉车</option>                 </select><br>
                  <span class="notice-span" style="display:block;margin-top:5px;" id="noticeGoodsType">        请选择商品的所属类型,进而完善此商品的属性</span></td>
              </dd>
              <div id="goods_attr_val">
              </div>
       <div id="cb"></div>
    </div>
    <div class="tabcon" id="con_two_3" style="display:none;">
    <dl class="addImg">  
    <dd>1.上传小图:<input type="text" name="p1small" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p1small','upfile','400','150')" />
    上传大图:<input type="text" name="p1big" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p1big','upfile','400','150')" />

    </dd>
    <dd>2.上传小图:<input type="text" name="p2small" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p2small','upfile','400','150')" />

    上传大图:<input type="text" name="p2big" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p2big','upfile','400','150')" />(* 可选)

    </dd>
    <dd>3.上传小图:<input type="text" name="p3small" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p3small','upfile','400','150')" />

    上传大图:<input type="text" name="p3big" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p3big','upfile','400','150')" />(* 可选)

    </dd>
    <dd>4.上传小图:<input type="text" name="p4small" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p4small','upfile','400','150')" />

    上传大图:<input type="text" name=p4big class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p4big','upfile','400','150')" />(* 可选)

    </dd>
    <dd>5.上传小图:<input type="text" name="p5small" class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p5small','upfile','400','150')" />

    上传大图:<input type="text" name=p5big class="text" readonly="readonly" /> 
    <input type="button" value="上传产品图" class="uploadImg" onclick="centerWindow('?a=call&m=upfile&type=content&p=p5big','upfile','400','150')" />(* 可选)

    </dd>
    </dl>
    </div>
    <div class="submitBtn"><input type="submit" name="send" class="submit" value="确定" onclick="return addGoods();" /> <input type="reset" value="重置" class="submit" /></div>
    </form>
      

  8.   

    用Ajax获取表单控件的值,一般给这个控件加个id属性,再用getelementById去获取好些,楼主的input标记没加id属性。使用ajax技术,不需要form标记了。
      

  9.   

            <div class="tabcon" id="con_two_2" style="display:none;background:white;">
            <dl style='padding-left:80px;padding-bottom:30px;' class="form" id="form2">
                  <dd>
            <strong>商品类型:</strong>
                    <select name="goods_type" onchange="getAttrList(this.value)" style='border:1px solid #999;'>
                      <option value="0">请选择商品类型</option>
                     <option label="音乐" value="6">音乐</option>
    <option label="叉车" value="1">叉车</option>
     
                     </select><br>
                  <span class="notice-span" style="display:block;margin-top:5px;" id="noticeGoodsType">        请选择商品的所属类型,进而完善此商品的属性</span></td>
              </dd>
              <div id="goods_attr_val">
              </div>
       <div id="cb"></div>
            </div>你在开玩笑吧?
    getAttrList 在一个不可见的层中调用
    下拉框不可见,如何能执行 getAttrList ?
    既然是不能执行,当然也就没有相关数据被提交了