>source

게시 된 데이터를 수신하려면 연락처 페이지와 별도의 PHP 페이지를 만들었습니다. 팝업 창에서 PHP를 열고 싶습니다. 나는 성공하지 않고 온라인으로 메소드를 시도했지만 팝업을 만들 수 있지만 PHP가 데이터를 보낼 수 없습니다.

<!------Contact Page-------><form method='post' action='sendemail.php' >    <label>Name</label>    <input name="name" placeholder="Type Here">    <label>Email</label>    <input name="email" placeholder="Type Here" id="email">    <label>Message</label>    <textarea name="message" placeholder="Type Here"></textarea>    <label>Human Verification</label>      <input name="human" placeholder="2 + 2= ? " id="human">      <input id="submit" name="submit" type="submit" value="Submit">    </label></form>

<?php
    $name= $_POST['name'];
    $email= $_POST['email'];
    $message= $_POST['message'];
    $from= $email;
    $to= '[email protected]';
    $subject= 'New Message';
    $human= $_POST['human'];
    $body= "From: $name\n E-Mail: $email\n Message:\n $message";
    if ($_POST['submit']) {
        if ($name != '' &amp;
&amp;
 $email != '') {
            if ($human== '4') {
                if (mail ($to, $subject, $body, $from)) {
                    echo '<h4>Your message has been sent!</h4>';
            } else {
                echo '<h4>Something went wrong, go back and try again!</h4>';
            }
        } else if ($_POST['submit'] &amp;
&amp;
 $human != '4') {
            echo '<h4>You answered the anti-spam question incorrectly!</h4>';
            }
        } else {
            echo '<h4>You need to fill in all required fields!!</h4>';
        }
    }
?>

오류가 발생합니까?

ggdx2021-04-19 16:45:34

Verry 첫 번째 줄은 sendeMail.php 대신 sendeail.php이며 다른 <양식>안에 <양식>안에 <양식>이 있습니다.

Eda1902021-04-19 16:45:34
  • 답변 # 1

    특히 양식과 같은 것에 대해 사용자가 브라우저에서 JavaScript가 해제 된 경우에 따라 JavaScript에 의존하지 않도록합니다.

    왜 간단하게 유지하고 같은 페이지에 모든 것을 가지고 있지 않으려면 양식 위에있는 오류 메시지가 표시되고 PHP가있는 필드를 다시 채우십시오.

    예 :

    <?php
    //Check if coming from a POST
    if ($_SERVER['REQUEST_METHOD']=='POST' &amp;
    &amp;
     isset($_POST['submit'])) {
        $name= $_POST['name'];
        $email= $_POST['email'];
        $message= $_POST['message'];
        $from= $email;
        $to= '[email protected]';
        $subject= 'New Message';
        $human= $_POST['human'];
        $body= "From: $name\n E-Mail: $email\n Message:\n $message";
        if ($_POST['submit']) {
            if ($name != '' &amp;
    &amp;
     $email != '') {
                if ($human== '4') {
                    if (mail ($to, $subject, $body, $from)) {
                        echo '<h4>Your message has been sent!</h4>';
                    } else {
                        echo '<h4>Something went wrong, go back and try again!</h4>';
                    } //endif
                } else if ($_POST['submit'] &amp;
    &amp;
     $human != '4') {
                    echo '<h4>You answered the anti-spam question incorrectly!</h4>';
                }
                } else {
                    echo '<h4>You need to fill in all required fields!!</h4>';
                } //endif
            } //endif
    } //endif
    ?><form method='post' action='<?php echo $_SERVER['PHP_SELF']; ?>' >    <label>Name</label>    <input name="name" placeholder="Type Here" value="<?php if (isset($_POST['name'])) { echo $name;} ?>" >    <label>Email</label>    <input name="email" placeholder="Type Here" id="email" value="<?php if (isset($_POST['email'])) { echo $email;} ?>">    <label>Message</label>    <textarea name="message" placeholder="Type Here"><?php if (isset($_POST['message'])) { echo $message;} ?></textarea>    <label>Human Verification</label>        <input name="human" placeholder="2 + 2= ? " id="human" value="<?php if (isset($_POST['human'])) { echo $human;} ?>">        <input id="submit" name="submit" type="submit" value="Submit">    </label></form>

    FALLBACK가 제공되는 한 JavaScript를 통해 양식을로드하는 것이 본질적으로 나쁘지 않다는 점을 주목할 가치가 있습니다 (JS가 사용 중지 된 경우 원래 양식 페이지로 리디렉션하십시오.)

    Insomnophobia2021-04-19 16:45:34
  • 답변 # 2

    콘텐츠를 제출하고 다른 페이지에 게시 /받는 요청을 수행하고 있으므로 MODAL은 전원으로 사용하는 방식으로 작동하지 않습니다. PHP code로 리디렉션되므로. 팝업을 표시하려면 JavaScript를 사용해야합니다.

    A를 추가 할 수 있습니다onclick.제출 버튼에?

    <input type='submit' onclick='alert("Message sent!")' />

    다른 옵션은 jQuery를 사용하여 PHP 파일에 Ajax 호출을 사용하는 것입니다 ($ .ajax ();) 그런 다음 필요한 팝업 창을 표시하려면 원하는 모든 라이브러리를 사용하십시오. jQuery의 또는 부트 스트랩의 모달을 확인하는 것은 복잡한 접근을 원한다면 힌트를 줄 수 있습니다.

    <input type='submit' onclick='sendMessage()' />function sendMessage(){
        $.ajax({
            //your stuff
        });
        $('.message').modal();
    }
    

  • 답변 # 3

    PHP 스크립트가 숨겨진 DIV에있는 양식의 동일한 페이지에있는 경우 PHP 자아로 액션을 대상으로하는 것으로 생각합니다.

    <form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"
    

    가변 게시물이 올바르게 설정되어 있습니다.

    팝업에 게시 해야하는 경우 Ajax를 사용하여 날짜 또는 jQuery를 보내 숨김 div에서 외부 페이지를로드 할 수 있습니다.

    $('#submit').click(function(){
       load(external.php);  //where your script is
    });
    

    두 경우 모두 작동해야합니다.

  • 이전 python : OS.ListDir () 모든 파일을 인쇄하지 않습니다
  • 다음 ASP.NET MVC HTML.BEGINFORM은 URL을 해독합니다