2012-09-13 3 views
0

나는 이런 식으로 한 적이 없으며 어떻게해야하는지 알고 싶습니다. 필드 배열 인 경우 하위 배열에 4 개의 입력을 넣어야합니다.여러 입력에 대한 html과 javascript 이름이 같습니까?

양식을 서버에 보내면 입력 이름이 전송되지만 입력을 허용하려면 어떻게해야합니까? 예를

내가 그것을에서 할 수 입니다 필요가 하위 배열에 대한

같은 이름이 여기 을 제공합니다 내가 아는 해달라고 것입니다. 다음 입력을 얻으려면 어떻게합니까

<input name="offers[]['minspend']" value="15.00"/> 
<input name="offers[]['minspend']" value="5.00"/> 

<input name="offers[]['minspend']" value="19.00"/> 
<input name="offers[]['minspend']" value="8.00"/> 

<input name="offers[]['minspend']" value="30.00"/> 
<input name="offers[]['minspend']" value="7.00"/> 

<input name="offers[]['minspend']" value="100.00"/> 
<input name="offers[]['minspend']" value="10.00"/> 

이 부분에 대한 설명이 정확합니까?

감사합니다.

+0

일반적으로 같은 이름의 여러 입력을 서버에 보내는 데는 문제가 없습니다. firebug 또는 fiddler를 실행하면 서버로 전송되는 요청을 볼 수 있으며 입력이 어떻게 전달되는지 확인할 수 있습니다.나는 제안에 따라 서버에서 받아야하는 "offer"라는 이름을 짓는다. – scrappedcola

+0

이 질문은 JavaScript와 관련이있다. –

답변

1

이 양식 var_dump($_POST) [가정 양식 방법 = 게시물을] 일에

<input name="offers['minspend'][]" value="15.00"/> 
<input name="offers['minspend'][]" value="5.00"/> 

<input name="offers['minspend'][]" value="19.00"/> 
<input name="offers['minspend'][]" value="8.00"/> 

<input name="offers['minspend'][]" value="30.00"/> 
<input name="offers['minspend'][]" value="7.00"/> 

<input name="offers['minspend'][]" value="100.00"/> 
<input name="offers['minspend'][]" value="10.00"/> 

를 들어 줄 :

array(1) { 
    ["offers"] = > array(1) { 
     ["\'minspend\'"] = > array(8) { 
      [0] = > string(5)"15.00" 
      [1] = > string(4)"5.00" 
      [2] = > string(5)"19.00" 
      [3] = > string(4)"8.00" 
      [4] = > string(5)"30.00" 
      [5] = > string(4)"7.00" 
      [6] = > string(6)"100.00" 
      [7] = > string(5)"10.00" 
     } 
    } 
} 

그래서, 당신이 그것을하는 방법이다.

당신은 minspend 주변에서 '을 제거 할 수 있습니다. 그들은 필요하지 않습니다.

거의 다 왔었습니다. 당신이 뭔가 arr[] = 1처럼 1이 배열 arr에 삽입 할 때

array(){ 
    array(){ 
     'minspend' => "15.00" 
    } 
    array(){ 
     'minspend' => "5.00" 
    } 
    .. and so on 
} 

그래서 무슨 일이 일어나고있다 : offers[]['minspend']는 당신이 얻을 것을 의미합니다.

0

우선 제가 질문에서 이해 한 것을 알려 드리겠습니다. 여러 개의 입력 필드가 같은 이름을 갖기를 원한다면 모든 것을 선택하여 어떤 동작을 수행하기를 원할 것입니다. 이 경우 다른 접근법을 제시하고자합니다. 같은 이름을 갖고 싶은 모든 컨트롤에 동일한 클래스 (cssclass)를 지정하지 않는 이유는 무엇입니까? 그렇게하면 document.getElementsByClassName("yourclassName")을 사용하여 함께 선택할 수 있습니다. 클래스 속성이 yourclassName 인 모든 요소의 배열을 반환합니다. 또는 이름을 고수하고 싶다면 document.getElementsByName("elementName");을 사용하면 이름이 elementName 인 배열을 반환합니다. 도움이 되길 바랍니다.

+0

원하는대로 인라인을 유지하려면'ClassName' 대신'Name'을 사용할 수 있습니다. – Rhyono

+0

그래도 작동합니다. 'document.getElementsByName ("name"); ' –

+0

OP가 서버에 필드를 보내는 것을 언급했습니다. 이 경우,'name'은'class'가 아닌'중요 '합니다. –

1

요청 (java, PHP 등)을 처리하는 백엔드 기술에 따라 다르지만 HTML 관점에서 볼 때 동일한 이름의 여러 요소는 동일한 매개 변수 이름으로 값을 전송합니다. 특별한 [] 구문은 필요 없습니다. HTML 요청에 대한 지원 내장을 제공

GET /mypage.html?offer=15.00&offer=5.0&offer=19.0 (etc, could be post too) 

대부분의 언어는 "제공"라는 이름의 키와 제출 된 값을 포함하는 배열 또는 목록 값으로, 맵 등이 요청을 나타냅니다.

예를 http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameterMap()

+0

그것 ($ _POST')의 모습에서 묻는 사람은 PHP를 사용하고 있습니다. 필자가 보아온 모든 PHP 예제에서, 특별한 대괄호 표기법'[]'이 항상 존재합니다. 나는 그것이 필요한지 아닌지는 모르지만 내 인상은 그 것이다. –

+0

나는 매우 제한된 양의 PHP 작업을 수행했다. 그러나 이것은 http 작업이다. PHP에서 이런 일이 수행된다면 아마도 명명 규칙 일 것이다. (확실하지 않지만). – Gus

+0

문서의 주석은이 개념을 지원하는 것 같습니다. 55 번 반복적으로 이름을 지정하는 예제를 참고하십시오. http://www.php.net/manual/en/reserved.variables.post.php – Gus

관련 문제