2017-11-02 1 views
1

양식에없는 입력 상자의 값을 가져 와서 양식의 URL에 입력하는 방법을 알아 내려고하고 있습니다. 저는 여기에 대해 이야기하고있는 것입니다 :이 방법을 시도 할 때양식 외부의 입력 상자 값 가져 오기

 <div id="wrapper"> 
       <h1>[ <input type="text" name="to" id="to" placeholder="To"> ]</h1> 
       <div id="menu"> 
        <p class="welcome">Welcome, <b><?php echo htmlentities($user); ?></b></p> 
        <p class="logout"><a id="exit" href="#">Logout</a </p> 
        <div style="clear:both"></div> 
       </div> 

      <div id="chatbox"></div> 
       <form name="message" action="../new_private.php?n=<?php echo $_POST['to']; ?>" method="post"> 
        <input name="usermsg" type="text" id="usermsg" size="63"> 
        <input name="submitmsg" type="submit" id="submitmsg" value="Send"> 
        <input name="from" type="hidden" value="<?php echo $user; ?>"> 
       </form> 
     </div> 

, 나는 $_POST['to'] is not a valid index.

내가 입력 상자 "을"의 값을 얻을에 넣고 싶은 말을 정의되지 않은 오류 그 폼의 URL. 이것을 어떻게 할 수 있습니까?

미리 감사드립니다.

알렉스

+0

같은 뭔가 당신이 이미 렌더링 된 페이지를 업데이트 클라이언트 측 정보를 복용 될 수 있기 때문에 양식 요소 – Tushar

+2

내부 게시 할 input' 당신은'당신이 클라이언트를 사용하기 위해 반드시 필요했는지 확인 JavaScript와 같은 측면 라이브러리 – Luke

+1

@ 루크 자바 스크립트는 라이브러리가 아닙니다. 이것은 프로그래밍 언어입니다. – SaidbakR

답변

0

HTML5에서, 당신은 폼의 id의 값으로 form attribute를 사용하여 <form> 외부 <input> 요소를 포함 할 수 있습니다. 예를 들어

...

<h1>[ <input type="text" name="n" id="to" placeholder="To" form="message"> ]</h1> 

<!-- snip --> 

<form id="message" action="../new_private.php" method="post"> 

여기에 유일한 차이점은 n 필드 $_POST 대신 $_GET에있을 것이다 것입니다.


URL에 값이 필요한 경우 JavaScript가 필요합니다. 이

<h1>[ <input type="text" name="to" id="to" placeholder="To"> ]</h1> 

<!-- snip --> 

<form name="message" action="../new_private.php" method="post"> 
    <!-- form contents, etc --> 
</form> 
<script> 
(function() { // IIFE so as not to pollute the global scope 
    const form = document.forms.message 
    const action = form.action // original action 
    document.getElementById('to').addEventListener('input', function() { 
    form.action = action + '?n=' + encodeURIComponent(this.value) 
    }, false) 
})() 
</script> 
+0

[이 리소스] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Global_%3Cinput%3E_attributes)에서'form' 속성은 형태. – SaidbakR

+0

@SaidbakR은 제가 말했던 것과 대답이 다릅니다. – Phil

+0

예, 잠시 후에 알게되었지만 일반적으로 양식을 편집 할 때는 더 간단합니다. 양식 태그를 몇 줄 위로 올리는 것이 좋습니다. 맞습니까? – SaidbakR

관련 문제