使用此功能,网站将从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;
});
});
这里一切都很好。这是我输出来自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>';
?>
我知道我必须拥有唯一的ID,因为可以触发多个脚本。我知道该怎么做。问题出在这里: 所有变量都返回未定义的值。 我试过了
$("input#bmonth").val();
OR
document.getElementById('bmonth').value;
或
$("#bmonth").val();
当我为每个表单添加唯一标识符时,问题就出现了问题。让我们说var unique_identifier = 22 我应该用
$("#bmonth"+unique_identifier).val();
从
获取值<input type="text" id="bmonth22" value="3">
但它也不起作用。
我提到它可以在我已制作的其他剧本中使用,但我无法在这里看到错误。我认为这是因为内容是dinamically加载,但我使用$(&#39; body&#39;)。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;
});
});
答案 0 :(得分:0)
问题很简单。
您正在尝试访问不存在的内容,这就是您未定义的原因。 只有当它存在时,您才能访问$(“input#bmonth”)。
从您粘贴的代码中。我认为只有在您通过调用以下网址
加载随机配置文件后才会进入dom"actions/create_random_profile.php"
解决方案是在创建随机配置文件后访问$(“input#bmonth”)。