将数据从数据库添加到Textbox-Jquery
我已经在Jquery中创建了一个动态列表,当用户单击某个项目时,它会将他们带到一个新页面,在该页面中显示他们选择的列表选项的特定项目。到目前为止,我已经将它们显示在各种段落和标题属性中,等等,只是为了测试 我要做的是使用标签获取当前显示的数据,并将它们放在表单中的文本框中 呈现数据并将其提交给属性等的代码示例如下:将数据从数据库添加到Textbox-Jquery,jquery,sql,forms,textbox,Jquery,Sql,Forms,Textbox,我已经在Jquery中创建了一个动态列表,当用户单击某个项目时,它会将他们带到一个新页面,在该页面中显示他们选择的列表选项的特定项目。到目前为止,我已经将它们显示在各种段落和标题属性中,等等,只是为了测试 我要做的是使用标签获取当前显示的数据,并将它们放在表单中的文本框中 呈现数据并将其提交给属性等的代码示例如下: <script type="text/javascript"> $(document).on('pagebeforeshow', '#index', fu
<script type="text/javascript">
$(document).on('pagebeforeshow', '#index', function(){
$("#list").empty();
var url="http://localhost/test/login/json4.php";
$.getJSON(url,function(json){
//loop through deals
$.each(json.deals,function(i,dat){
$("#list").append("<li><a id='"+dat.dealid+"' data-restaurantid=" + dat.restaurantid + " data-image=" + dat.image + "><h1>"+dat.name+"</h1><p>"+dat.dname+"</p></a></li>");
$(document).on('click', '#'+dat.dealid, function(event){
if(event.handled !== true) // This will prevent event triggering more then once
{
dealObject.dealID = $(this).attr('id');
dealObject.restaurantid = $(this).attr('data-restaurantid');
dealObject.name = $(this).find('h1').html();
dealObject.image = $(this).attr('data-image');
//dealObject.dname = $(this).find('input').html();
dealObject.dname = $(this).find('input').val();
$.mobile.changePage( "#index2", { transition: "slide"} );
event.handled = true;
}
});
});
$("#list").listview('refresh');
});
});
$(document).on('pagebeforeshow', '#index2', function(){
//$('#index2 [data-role="content"]').html('You have selected Link' + dealObject.dname);
$('#index2 [data-role="content"]').find('#deal-img').attr('src',dealObject.dealObject);
$('#index2 [data-role="content"]').find('#title').html(dealObject.name);
//$('#index2 [data-role="content"]').find('#description').html(dealObject.dname);
$('#index2 [data-role="content"]').find('#name').html(dealObject.dname);
});
var dealObject = {
dealID : null,
restaurantid : null,
name : null,
image : null,
dname : null
}
</script>
$(文档).on('pagebeforeshow','#index',函数(){
$(“#列表”).empty();
变量url=”http://localhost/test/login/json4.php";
$.getJSON(url,函数(json){
//循环交易
$.each(json.deals,function(i,dat){
$(“#列表”)。追加(“”+dat.name+”“+dat.dname+” ”);
$(document).on('click','#'+dat.dealid,函数(事件){
if(event.handled!==true)//这将防止事件触发多次
{
dealObject.dealID=$(this.attr('id');
dealObject.restaurantid=$(this.attr('data-restaurantid');
dealObject.name=$(this.find('h1').html();
dealObject.image=$(this.attr('data-image');
//dealObject.dname=$(this.find('input').html();
dealObject.dname=$(this.find('input').val();
$.mobile.changePage(“#index2”,{transition:“slide”});
event.handled=true;
}
});
});
$(“#列表”).listview(“刷新”);
});
});
$(document).on('pagebeforeshow','#index2',function(){
//$(“\index2[data role=“content”]”)html('您已选择链接“+dealObject.dname”;
$('#index2[data role=“content”]').find('#deal img').attr('src',dealObject.dealObject);
$('#index2[data role=“content”]').find('#title').html(dealObject.name);
//$('#index2[data role=“content”]').find('#description').html(dealObject.dname);
$('#index2[data role=“content”]').find('#name').html(dealObject.dname);
});
var对象={
dealID:null,
restaurantid:null,
名称:空,
图像:空,
dname:null
}
以下是索引2 html的一小部分,一直到内容部分的末尾:
<div data-role="page" id="index2">
<div data-role="header">
<h1> Find A Deal </h1>
</div>
<div data-role="content">
<?php
if( !isset( $_SESSION ) ){
session_start();
}
if( isset( $_SESSION['username'] ) ){
echo ".";
} ?>
<label for="name">Deal Name:</label>
<input type="text" value="" name="name" id="name"/>
<label for="desc">Description</label>
<input type="text" value="" name="desc" id="desc"/>
<a data-role="button" id="submit-button" data-theme="b">Submit</a>
<img src="" width="100px" height="100px" id="deal-img">
<h1 id="title"></h1>
<h3 id="description"></h3>
<p id="name"></p>
</div>
成交
交易名称:
描述
提交
您要将其设置为输入type='text'元素的innerHTML?输入type='text'元素的innerHTML应始终作为空字符串返回
我认为您应该使用.val()
哦,等等,对不起,我没有仔细看它…可能是因为有多个输入type='text元素'…这意味着它匹配多个元素。为了证实我的理论,你应该可以试试这个
dealObject.dname = $(this).find('input').eq(0).val();
通过添加.eq(0),它应该只对第一个输入类型class='text'元素执行此操作,该元素是id='name'的元素。发现您的问题,name不能用作js对象内的变量名 更改:
var dealObject = {
dealID : null,
restaurantid : null,
name : null,
image : null,
dname : null
}
对这样的事情:
var dealObject = {
dealID : null,
restaurantid : null,
shortname : null,
image : null,
dname : null
}
还可以使用以下命令:
$('#index2 [data-role="content"]').find('input#desc').val(dealObject.description);
$('#index2 [data-role="content"]').find('input#name').val(dealObject.dealName);
$('#index2 [data-role="content"]').find('input#did').val(dealObject.dealID);
我意识到我只看一个零碎的版本,但看起来你必须在$(文档)中做“}”;“。在('click')函数上……已经添加好了,抱歉,我不想上传太多代码来监督这个问题。我在“”和“”以及类似的其他标记中呈现这些数据值没有问题。我只是想把它设置成一个文本框,我的问题是Hanks@mirnber这对我来说很不幸还没有解决,恐怕你有没有研究过我刚才说的话?看起来你有太多的“}”);“…你的浏览器的JS错误控制台中出现了任何消息吗?无论如何,我看不出来,我会在上面回答我的问题,并输入完整的jscript代码,这样你可以看到道歉-我想我甚至错误地删除了一半的问题哈哈,漫长的一天!是的,现在HTML消失了。我想说,如果h1和p出现,那么使用.val()应该是您的答案。您确定这不是jquery移动缓存问题吗?您是否尝试过每点击一页刷新两次而不是一次?我知道,jquery mobile非常热衷于为记录和提醒自己缓存内容,这让我遇到了一些问题。find()可以返回多个元素…而不仅仅是一个。我仍然不担心=/因为我认为这是一个足够小的错误,或者某件事情正在变成一个非常不可能完成的任务哈哈!是的,我没有答案了,除非你想发送一个实时链接…希望你能找到答案!我现在才开始教自己编码,所以我一点也不需要这个,我只是用localhost来实现。我在其他地方读到过关于.val方法的文章,所以我想知道为什么它对我不起作用。我会继续搜索,并告诉你,如果我得到任何工作无论如何!非常感谢您抽出时间,非常感谢:)
var dealObject = {
dealID : null,
restaurantid : null,
shortname : null,
image : null,
dname : null
}
$('#index2 [data-role="content"]').find('input#desc').val(dealObject.description);
$('#index2 [data-role="content"]').find('input#name').val(dealObject.dealName);
$('#index2 [data-role="content"]').find('input#did').val(dealObject.dealID);