0

struts1.2のajaxからの以下のアクションコールを続行します

私はstruts2で同じことを試みています。私は次のコードで試しました:

function onChangeProduct(){
  var name = $('#product').val();   
   alert(name);
  $.ajax({  
    type: "POST",  
    url: "/SampleAjax/getProduct.do",  
    data: "name=" + name,  
    success: function(response){  
      // we have the response  
      $('#info').html(response);  
    },  
    error: function(e){  
      alert('Error: ' + e);  
    }  
  });  

}

ドロップダウンボックス:

<s:select  name="product"  headerKey="0" headerValue="Select Product" list="#request.Product" onchange="onChangeProduct()"></s:select>

上記のドロップダウンボックスから値を選択して、製品の値を取得しようとしています。アラートメッセージで未定義になりました。同じことを手伝ってください。

4

3 に答える 3

0

はい、タグにIDを指定していなかったため、未定義になります。タグにid="product"を入れると、値が表示されます。Jqueryは、名前ではなくidを使用してタグを検索します。

于 2013-03-25T07:57:09.793 に答える
0

これを変更してみることができます:

var name = $('#product').val();   

これに:

var name = $(this).val();  

ここにこれを追加します:

onchange="onChangeProduct(this.value)"></s:select> 

完全な機能:

function onChangeProduct(val){
   var name = val;   
   alert(name);
   $.ajax({  
      type: "POST",  
      url: "/SampleAjax/getProduct.do",  
      data: {name : name},   //<-----use this to make a dataString
      success: function(response){  
           // we have the response  
          $('#info').html(response);  
      },  
      error: function(e){  
          alert('Error: ' + e);  
      }  
   });  

}
于 2013-03-25T08:05:31.333 に答える
0

私は上記と同じ解決策を得ました、これにより私は以下のコードを共有しています、

Details.jsp

<script type="text/javascript">
    function onChangeProduct() {/* 
        var name = $('#product').val();
        alert(name);
        $.ajax({
            type : "POST",
            url : "/SampleAjax/getProduct.action",
            data : {
                prod : name
            },
            success : function(response) {
                // we have the response  
                $('#productPitch').html(response);
            },
            error : function(e) {
                alert('Error: ' + e);
            }
        }); */

        name=document.getElementById("product").value;
           //document.myForm.selectedGroupId.value=groupIds;
             var  strURL="/SampleAjax/getProduct.action?prod="+name;

                          if (window.XMLHttpRequest) { 

                             var xmlHttp = new XMLHttpRequest();

                           } else if (window.ActiveXObject) { 

                             var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

                           }
                        xmlHttp.open('POST',strURL , true);
                        xmlHttp.onreadystatechange = function() {
                        if (xmlHttp.readyState == 4) {
                    document.getElementById("productPitch").innerHTML = xmlHttp.responseText;
                      //document.getElementById("load3").style.display = "none";
                    //document.getElementById("load").style.display = "block";


                       }
                }



                xmlHttp.send(null);


    }
</script>
</head>
<body>
    Details
<s:form name="sampleDto">

    <s:select name="product" id="product" headerKey="0"
        headerValue="Select Product" list="#request.Product"
        onchange="onChangeProduct()" theme="simple">
        </s:select>
</s:form>
<div id="productPitch"></div> 

product.jsp

<select>
        <option value="">Select</option>
        <c:forEach var="listItems" items="${ProductPitch }">

            <option value="<c:out value="${listItems}" />">
                <c:out value="${listItems}" />
            </option>
        </c:forEach>
    </select>

アクション:

System.out.println("Hi");
    ArrayList<String> prodPitch = new ArrayList<String>();
    if(null != getProd()){
        System.out.println(""+getProd());
        prodPitch = sampleBo.getProductPitch(getProd());
    }
    System.out.println(prodPitch.size());
        request.put("ProductPitch", prodPitch);

    return "success";
于 2013-03-28T07:08:32.967 に答える