-1

このフォームを送信すると、電話番号のみが返され、問い合わせ: undefined も返されます。名前、電話番号、お問い合わせ内容が返されます。名前が返されない理由と、照会が未定義である理由について何か考えはありますか?

私のPHP

    $name=$_POST['name'];
    $phone=$_POST['phone'];
    $enquiry=$_POST['enquiry'];

    $subject="NINJA2k - EMAIL INQUIRY FROM: $name";
    $message="
          Phone:<br>
          <strong>$phone</strong><br>
          <br>
          Enquiry:<br>
          <strong>$enquiry</strong><br>
          <br>
    ";

    mysql_close();

    include("class.phpmailer.php");
    include("class.smtp.php");

    $mail = new PHPMailer();
    $mail->IsSMTP();// send via SMTP
    $mail->Host = "localhost"; // SMTP servers
    $mail->SMTPAuth = false; // turn on/off SMTP authentication
    $mail->From = "user1@mydomain.com";
    $mail->FromName = "http://mail.mydomain.com/";
    $mail->AddAddress("user1@mydomain.com");
    $mail->AddReplyTo("user1@mydomain.com");
    $mail->WordWrap = 50;// set word wrap
    //now Attach all files submitted

    $mail->Body = $message;
    //
    $mail->IsHTML(true);// send as HTML
    $mail->Subject = $subject;


    if($mail->Send()) 
    {
        echo "Thank You <b>$name</b><br>Your email has been sent.";
    } 
    else 
    {
        echo "There was a problem sending the mail. Please check that you filled in the form correctly.";
    }
?>

$('.contact_form').dialog({
        width:500,
        height:450,
        modal:true,
        buttons: {
            "Send": function() {
                if(($("#ct_name").val()=="") || ($("#ct_phone").val()=="") || ($("#ct_enquiry").val()=="") || ($("#ct_captcha").val()==""))
                    alert("You must fill all the field");
                else
                {
                    var capt=$(div_list[ind]).attr("id");
                    if(capt!=$("#ct_captcha").val().toLowerCase())
                        alert("Captcha Code is Invalid!");
                    else
                    {
                        var send_string;
                        send_string="name=";
                        send_string+=$("#ct_name").val();
                        send_string+="&phone=";
                        send_string+=$("#ct_phone").val();
                        send_string+="&enquiry=";
                        send_string+=$("#ct_enquiry").val();

                        $.ajax({
                             type: "POST",
                             url: "send_mail.php",
                             data:   send_string,
                             async: false,
                             success: function(msg){ 
                                alert("Your mail was sent successfully!");
                             } ,
                             error: function(msg){
                                alert("Sorry! We couldn't send email"); 
                             }
                        }); 
                    }
                }

            }
        }
    });

私のHTML

    <div class="contact_form" title="Dialog Title" style="display:none">
    <table width="100%" style="padding:30px">
        <tr><td>Name</td><td><input type="text" id="ct_name"/></td></tr>
        <tr><td>Phone Number</td><td><input type="text" id="ct_phone"/></td></tr>
        <tr><td>Enquiry Data</td><td><textarea rows="4"></textarea></td></tr>
        <tr>
        <td>Captcha</td>
        <td>
            <div>
                <div class="captcha" id="28ivw"><img src="images/captcha1.png" /></div>
                <div class="captcha" id="k4ez"><img src="images/captcha2.png" /></div>
                <div class="captcha" id="jw62k"><img src="images/captcha3.png" /></div>
                <div class="captcha" id="fh2de"><img src="images/captcha4.png" /></div>
                <div class="captcha" id="gwprp"><img src="images/captcha5.png" /></div>
                <div class="captcha" id="4d7ys"><img src="images/captcha6.png" /></div>
                <div class="captcha" id="e5hb"><img src="images/captcha7.png" /></div>
                <div class="captcha" id="xmqki"><img src="images/captcha8.png" /></div>
                <div class="captcha" id="6ne3"><img src="images/captcha9.png" /></div>
                <div class="captcha" id="xdhyn"><img src="images/captcha10.png" /></div>
                <div class="captcha" id="q98p"><img src="images/captcha11.png" /></div>
                <div class="captcha" id="hrai"><img src="images/captcha12.png" /></div>
            </div>
            <input type="text" style="margin-top:15px" id="ct_captcha"/>
        </td>
        </tr>
    </table>
</div>
4

1 に答える 1

2

name値に到達できるようにするには、HTML で属性を使用する必要があります。だから代わりに

<tr><td>Name</td><td><input type="text" id="ct_name"/></td></tr>

あなたが持っている必要があります

<tr><td>Name</td><td><input type="text" name="name" id="ct_name"/></td></tr>

編集

「トリック」は、name値が$_POST配列の入力のキーとして使用されることです。ただし、jQuery を同時に使用している場合は、名前を使用するよりも DOM でそれらを使用して入力に到達する方が簡単であるため、依然として必要なid場合があります。class

于 2012-12-04T12:23:40.837 に答える