この機能を使用すると、Webサイトはactions/create_random_profile.phpからユーザープロファイルを読み込みます。動的にロードされたコンテンツからテキストボックスの値を取得できません
$(function() {
$('body').on('click','#random_profile',function(){
//var msgid = $(this).attr("id");
//var dataString4 = 'msgid=' + msgid;
$('#random_profile_area_loader').html('<img src="img/loader.gif" class="loading" />');
$.ajax({
type: "POST",
url: "actions/create_random_profile.php",
//data: dataString4,
cache: false,
success: function(data){
if (data == 0) {
$('#random_profile_area').html('Not Sent!');
} else {
$('#random_profile_area_loader').html('');
$('#random_profile_area').append(data);
}
}
});
return false;
});
});
すべてここで問題ありません。そして、これは私が複数のスクリプトをトリガすることができますので、私はユニークなIDを持っていなければならないことを知っているcreate_random_profile.php
</php
Echo '
<div class="col-md-2 created_profile">
/////.......///////
<div class="form-group">
<label for="email">Email:</label>
<input type="text" class="form-control" id="email" name="email" value="'.$email.'">
</div>
/////.......///////
Echo '<button type="button" class="btn btn-default save_random_profile" id="'.$rand_identifier.'">Create this profile</button>';
</div>';
?>
から来た私の出力の例です。私はそれを行う方法を知っています。問題はここにあります: すべての変数は未定義の値を返します。 私は私が各フォームのためにその固有の識別子を追加するときに問題がwhorseある
$("input#bmonth").val();
OR
document.getElementById('bmonth').value;
または
$("#bmonth").val();
を試してみました。のは、私が
<input type="text" id="bmonth22" value="3">
から値を取得するが、それはどちらか動作しません
$("#bmonth"+unique_identifier).val();
を使用する必要があります= 22 そのVaRのunique_identifierを言ってみましょう。
私は他のスクリプトでも動作すると言いますが、ここでは間違いを見ることはできません。私はコンテンツがdinamicallyロードされているが、私は$( 'ボディ')を使用しているので起こると思う。on()とそれはうまくいくはずです。何か案は?
$(function() {
$('body').on('click','.save_random_profile',function(){
var identifier_id = $(this).attr("id");
$('.created_profile').html('<img src="img/loader.gif" class="loading" />');
// var phcat = document.getElementById('phcat'+identifier_id).value;
//var phcat = $('#created_profile'+identifier_id).children().document.getElementById('phcat').value;
var phcat = "man.png";
var phprofile = "man.png";
/*var phcat = document.getElementById('phcat').value;
var phprofile = document.getElementById('phprofile').value;*/
var byear = $("#byear").val();//document.getElementById('byear').value;
var bmonth = $("input#bmonth").val();//document.getElementById('bmonth').value;
var bday = $("input#bday").val();//document.getElementById('bday').value;
var country = $("input#country").val();//document.getElementById('country').value;
var email = $("input#email").val();//document.getElementById('email').value;
var password = $("input#password").val();//document.getElementById('password').value;
var username = $("input#username").val();//document.getElementById('username').value;
var interested_in = $("#interested_in").val();//document.getElementById('interested_in').value;
var sex = $("#sex").val();//document.getElementById('sex').value;
var status = $("#status").val();//document.getElementById('status').value;
var description = $("#description").val();//document.getElementById('description').value;
var dataString = 'phcat=' + phcat + '&phprofile=' + phprofile + '&interested_in=' + interested_in + '&sex=' + sex + '&status=' + status + '&description=' + description + '&byear=' + byear + '&bmonth=' + bmonth + '&bday=' + bday + '&country=' + country + '&email=' + email + '&password=' + password + '&username=' + username;
alert(dataString);
$.ajax({
type: "POST",
url: "actions/save_random_profile.php",
data: dataString,
cache: false,
success: function(data){
if (data == 0) {
$('.created_profile').html('Not Sent!');
} else {
$('.created_profile').html(data);
}
}
});
return false;
});
});
これは、this.serializeを使ってフォームを簡単にシリアル化することができます。これは、ajaxに手動で解析するjs変数の数を削除します。 – Akintunde007