0

私は自分のサイトの領域を形成するdivタグを持っており、ユーザーが自分の電子メールを送信してメールリストの一部にすることを許可したいと考えています。私はこれを行うphpコードを持っていますが、使いやすさの点でそれをより良くするために私がしたいいくつかの微調整があります。

私は現在、問題の領域のhtmlを持っています

    <div id="sideimage1">
    <div id="maillist">
    <div class="sidebartitle">Keep Up To Date</div>
    <div class="sidebartext">Sign up now to receive free newsletters and the best deals direct to your email.</div>
    <form id="maillist" name="maillist" method="post" action="maillistprocess.php" style="padding-top:10px;">

    <div style="text-align:left;"><input name="email" type="text" id="email" size="40" style="margin-top:5px; margin-left:15px; font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif;" value="name@example.com"/>
    </div>

    <div style="padding-top: 15px; text-align: left; margin-left:15px;">
    <input name="submit" type="image" alt="Click To Join Our Mailing List" class="JoinNowbutton" 
    src="../WebImages/JoinNowButton1.jpg" onmouseover="this.src='../WebImages/JoinNowButton2.jpg'" onmouseout="this.src='../WebImages/JoinNowButton1.jpg'"/></div>
    </form>
    </div>

ユーザーが参加ボタンをクリックすると、次のように見えるphpスクリプトの検証結果に基づいて、「おめでとう」や「あなたはvlaueを入力していません」などの「sibebartext」がどのように置き換えられるかを誰かが知っているのだろうかと思いました。空の箱のために。これを行う方法がわかるまで、サインアップに成功したら、phpダイレクトユーザーをホームページに戻すだけです。

jqueryで行う必要があるかもしれませんが、これについてはあまり経験を積んでいないと思います。

前もって感謝します。

4

3 に答える 3

1
$("form#maillist").on("submit", function() {
  var s = $("#email").val();
  if(s=="") {
    $(".sidebartext").text("Enter Some Value");
    return false;
    //easier to return false. Else it could get complicated with more checks and all the nested if statments (considering also checking name/addres/etc
  }

  $.ajax({
    url : "check.php",
    data : s,
    cache : false,
    success : function(data) {
      if(data=='Completed')
        $('.sidebartext').html("Congratulations!");
      else
        $('.sidebartext').html("Error! " + data); //allow for more information in the error then just error (perhaps invalid email or email already in use)
    }
  }
});

PHP CHECK AND ECHO で「おめでとう!」成功し、エコー「エラー!」エラーが発生した場合は、check.php を php スクリプト名に変更してください。

于 2012-12-14T15:43:32.987 に答える
1

これにはjqueryを使用できます。通常のリクエストの代わりに AJAX でフォームを送信する簡単な方法は、次を使用して実行できます。

$('form').submit(function() {
  var $el = $(this);
  var url = $el.attr('action');

  $.post(url, $el.serialize(), function(data) { 
    if (data=='success') {
      $('.sidebartext').html('congratz');
    } else {
      alert('error: ' + data);
    }
  }).error(function() { alert('something went wrong'); });

  return false;
});

そして、phpでは、成功した場合は完全な応答として「成功」を返し、そうでない場合はエラーメッセージを返します

于 2012-12-14T15:41:14.240 に答える
0

JavaScript を使用して空白の値を確認し、問題がなければフォームを送信できます。

function checkForm(){
        if(document.getElementById('email').value == ''){
            document.getElementById('sidebartext').innerHTML = 'You have not entered a vlaue';
        }else{
            form[0].submit;
        }
    }

<div class="sidebartext">のIDがあることを確認してくださいsidebartext

電子メールが実際にデータベースに挿入されたことを確認するために、ajax 呼び出しを行うことをお勧めします。これが例です。

ajax 呼び出しの別の例:

xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', '/ajax/script.php?id=' + id, true);
xmlHttp.onreadystatechange = function()
{
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
    {
       //complete
    }
    else
    {
       //try again
    }
}
于 2012-12-14T15:45:17.013 に答える