Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从数据库添加到Textbox-Jquery_Jquery_Sql_Forms_Textbox - Fatal编程技术网

将数据从数据库添加到Textbox-Jquery

将数据从数据库添加到Textbox-Jquery,jquery,sql,forms,textbox,Jquery,Sql,Forms,Textbox,我已经在Jquery中创建了一个动态列表,当用户单击某个项目时,它会将他们带到一个新页面,在该页面中显示他们选择的列表选项的特定项目。到目前为止,我已经将它们显示在各种段落和标题属性中,等等,只是为了测试 我要做的是使用标签获取当前显示的数据,并将它们放在表单中的文本框中 呈现数据并将其提交给属性等的代码示例如下: <script type="text/javascript"> $(document).on('pagebeforeshow', '#index', fu

我已经在Jquery中创建了一个动态列表,当用户单击某个项目时,它会将他们带到一个新页面,在该页面中显示他们选择的列表选项的特定项目。到目前为止,我已经将它们显示在各种段落和标题属性中,等等,只是为了测试

我要做的是使用标签获取当前显示的数据,并将它们放在表单中的文本框中

呈现数据并将其提交给属性等的代码示例如下:

    <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);