[英]Radio button to mysql with ajax validation
首先:我正在使用 Jeffrey Way 在 In the Woods 中制作的郵件腳本。
我有一個簡單的表格,如下所示:
<form method="post" action="sendEmail.php" id="form_reserveren">
<div id="container">
<div id="main" style="width: 100%; height: auto; float: left;">
<div class="left">
<h3>Uw gegevens</h3>
<p style="margin-bottom: 30px; height: 40px; width: 100%;">
<input type="radio" id="zml_geslacht" name="zml0" value="de Heer"/><span style="float: left; margin-top: -5px; height: 25px;">de Heer</span><br />
<input type="radio" id="zml_geslacht" name="zml0" value="Mevrouw"/><span style="float: left; margin-top: -5px; height: 25px;">Mevrouw</span>
</p>
<p>
<input type="text" id="zml_voornaam" name="zml1" value="Uw voornaam" onblur="if(this.value=='') this.value='Uw voornaam';" onfocus="if(this.value=='Uw voornaam') this.value='';"/>
<input type="text" id="zml_achternaam" name="zml2" value="Uw achternaam *" onblur="if(this.value=='') this.value='Uw achternaam *';" onfocus="if(this.value=='Uw achternaam *') this.value='';"/>
</p>
<p>
<input type="text" id="zml_email" name="zml3" value="Uw e-mailadres *" onblur="if(this.value=='') this.value='Uw e-mailadres *';" onfocus="if(this.value=='Uw e-mailadres *') this.value='';"/>
</p>
</div>
<div class="right">
<h3>Uw reservering</h3>
<p style="height:68px;">
<textarea name="zml13" id="zml_opmerkingen" rows="12">Opmerkingen</textarea>
</p>
<p><input type="submit" name="submit" id="submit" value="Email Us!" /></p>
<ul id="response" />
</div>
</div><!--end main -->
</div><!-- end container -->
</form>
這通過 ajax,如下所示:
var zml0 = $('input#zml_geslacht').html( $(':checked').val());
var zml1 = $('input#zml_voornaam').val();
var zml2 = $('input#zml_achternaam').val();
var zml3 = $('input#zml_email').val();
var zml13 = $('textarea#zml_opmerkingen').val();
$.ajax({
type: 'post',
url: 'sendEmail.php',
data: 'zml0=' + zml0 + '&zml1=' + zml1 + '&zml2=' + zml2 + '&zml3=' + zml3 + '&zml13=' + zml13,
success: function(results) {
$('#main img.loaderIcon').fadeOut(1000);
$('ul#response').html(results);
}
}); // end ajax
之后,它會轉到我的 sendEmail.php 以將表單發送到電子郵件地址(並將其存儲在數據庫中)。 查詢是:
$zml0 = $_REQUEST['zml0']; // Geslacht
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
// query
$sql = "INSERT INTO test (zml0,zml1,zml2) VALUES (:zml0,:zml1,:zml2)";
$q = $conn->prepare($sql);
$q->execute(array(':zml0'=>$zml0,
':zml1'=>$zml1,
':zml2'=>$zml2));
一切正常。我還有姓名、電子郵件地址等,除了 Gender 單選按鈕(荷蘭語中的 Gender 是 Geslacht,我將其命名為 zml0 以更好地防止垃圾郵件發送者)。 這個想法當然是用戶應該 select 女性或男性。
當它存儲在數據庫中時,它所說的只是[object Object]。 另外,當我只是回顯輸入時。 我怎樣才能使這項工作?
嘗試這個:
var zml0 = $('input[name=zml0]:checked').val();
您可以嘗試的另一件事是:
$.ajax({
type: 'post',
url: 'sendEmail.php',
data: $('#form_reserveren').serialize(),
success: function(results) {
$('#main img.loaderIcon').fadeOut(1000);
$('ul#response').html(results);
}
}); // end ajax
這一行是問題:
var zml0 = $('input#zml_geslacht').html( $(':checked').val());
似乎是一個全局變量,因此如果您選中另一個框,則無關緊要。 你總是會發送初始值。 好吧,如果它是正確的,你會的。 第二個問題是你只是在搶html? 從它,而不是實際價值。 顯然這是返回 object。
您的 ajax 調用應獲取當時的表單輸入:
$.ajax({
type: 'post',
url: 'sendEmail.php',
data: 'zml0=' + $('input[name=zml0]:checked').val(),
success: function(results) {
$('#main img.loaderIcon').fadeOut(1000);
$('ul#response').html(results);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.