0

まず、これを行うための完全に良い方法がある場合は? 教えてください...この方法は一種の「ハック」のようです。これが私がやろうとしていることです。以下に示すように、リンクinputのように単純に表示したいテキストフィールドがあります。<a>ユーザーがクリックすると、ユーザーがJavaScriptメールを入力してポップアップボックスが表示されるようにします。私は彼らにOKを押してもらいたいので、そのメールの値をフォームに送り返し、フォームはphp投稿を介して送信します。

formボックスから値を取得して(可能であれば)に挿入して、 に送信できるようにする方法がわかりませんphp

コードは次のとおりです。

    <form id="frm1" action="login.php" method = "post">
        <input onclick="resetPassword()" type="text" name="email" value="Reset Password" style="cursor: pointer; background:none; text-decoration: underline; border: none;"  />
    </form>


    <script>
        function resetPassword() {
        var x;

        var email=prompt("Enter email to reset password.", "example@email.com");

        if (email!=null)
          {
          document.getElementById("frm1").submit();
          }
        }
   </script>


  <?php 
     if (isset($_POST['email'])) {
         $email = $database -> escape_value(trim($_POST['email']));
        //  reset password    
      }
  ?>
4

3 に答える 3

1

inputフィールドに ID を追加します。

<form id="frm1" action="login.php">
    <input id="email" onclick="resetPassword()" type="text" name="email" value="Reset Password" style="cursor: pointer; background:none; text-decoration: underline; border: none;"  />
</form>

    function resetPassword() {

    var email=prompt("Enter email to reset password.", "example@email.com");

    if (email!=null)
      {
      document.getElementById("email").value = email; // Put value into form field
      document.getElementById("frm1").submit();
      }
    }

ユーザーがフォーム フィールドに直接入力できないようにする場合は、readonly属性を指定する必要があります。onclickをクリックすることはできませんが、それでもアクセスできますTab

于 2013-07-25T15:42:09.103 に答える
1

より良いアプローチは、jQuery を使用し、テキスト フィールドの情報を AJAX 経由で $_POST 変数を予期しているスクリプトに送信することです。このように、<form>要素は不要になります。

    function resetPassword() {
        var x;
        var email=prompt("Enter email to reset password.", "example@email.com");
        if (email!=null) {
             $.post( url_of_the_script, {email: email}, function() { alert('Email sent'); } );
        }
    }
于 2013-07-25T15:46:22.163 に答える
1

プロンプトからメールを取得し、入力フィールドに貼り付けてフォームを送信します。

<form id="frm1" action="login.php" method='post'>
    <input id="email" onclick="resetPassword()" type="text" name="email" placeholder="Reset Password" />
</form>

<script type="text/javascript">
  function resetPassword() {    
    var email = prompt("Enter email to reset password.", "email@example.com");

    if (email != null) {
      document.getElementById("email").value = email; 
      document.getElementById("frm1").submit();
    }
  }
</script>
于 2013-07-25T15:49:34.633 に答える