$ .post函数不会将更改附加到textarea

时间:2017-02-14 09:22:34

标签: javascript php jquery html

所以我是Javascript的新手,经过很长一段时间的搜索,我找不到我想要的答案(也许是因为我没有合适的条款)

所以这是我的剧本:

function changeStyle() {
    var type = $('select[name=style_website]').val();
    var numwebsite = $('select[name=style_website]').attr('data-numwebsite');

    $.post("getstyle",{'type': type,'numwebsite': numwebsite},
        function(retour){
            $('.websitestyle_js').val(retour);
        });
}

这是我的HTML:

<strong><?php echo "Modify your style";?></strong>
<select onchange="changeStyle()" style="float: right;" name="style_website" data-numwebsite="<?php echo $numwebsite;?>">
    <option value="style" selected>Your style</option>
    <option value="mini">Mini</option>
    <option value="bmw">Bmw</option>
</select>
<form method="post" action="<?php echo base_url();?>websites/modificationStyle?numwebsite=<?php echo $numwebsite;?>">
    <div class="well">
        <p><strong><?php echo "Code Editor";?></strong></p>
        <textarea name="websitestyle" class="websitestyle_js" id="code1"><?php echo $websitedata['websitestyle'];?></textarea>
    </div>
    <button type="submit" class="btn btn-success form-control m-b"><?php echo "Modify Style";?></button>
</form>

我想要做的是根据选择更改textarea的内容,每次用户点击其他选项时,都应该更改textarea。问题是它没有改变任何东西,所以我想知道我的语法是错误的还是我错过了什么。

我用alert()打印“retour”,它包含我要附加到textarea的数据,所以它不是来自那个。我也尝试添加这一行:

$('.websitestyle_js').val('test');

单独在我的html结尾处查看它是否是语法错误,但它更改了textarea。

感谢您的回答。

EDIT1(询问的是console.log的结果):

console.log(retour)

EDIT2(对于那些困惑的人来说,最终看起来像是什么):

code_editor

4 个答案:

答案 0 :(得分:0)

在更改时通过jquery尝试解决方法。这是一个在更改选择

时更改textarea的演示
uploadOrders.enqueue(new Callback<Order>() {...});

JS

<strong><?php echo "Modify your style";?></strong>
<select style="float: right;" name="style_website" data-numwebsite="numwebsite">
<option value="style" selected>Your style</option>
<option value="mini">Mini</option>
<option value="bmw">Bmw</option>
</select>
<form method="post">
<div class="well">
    <p><strong><?php echo "Code Editor";?></strong></p>
    <textarea name="websitestyle" class="websitestyle_js" id="code1"></textarea>
</div>
<button type="submit" class="btn btn-success form-control m-b">Modify Style</button>
</form>

也许这不是你真正需要的,但它通常会回答你的问题&#34;我想要做的是根据选择改变我的textarea的内容,每次用户点击不同的选项时假设改变textarea&#34;。

Live Demo

答案 1 :(得分:0)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>   
 function changeStyle() {
        var type = $('select[name=style_website]').val();
        var numwebsite = $('select[name=style_website]').attr('data-numwebsite');

        $.post("getstyle.php",{'type': type,'numwebsite': numwebsite},
            function(retour){
                $('.websitestyle_js').val(retour);
            });
    }
</script>  

<strong><?php echo "Modify your style";?></strong>
<select onchange="changeStyle()" style="float: right;" name="style_website" data-numwebsite="<?php echo $numwebsite;?>">
    <option value="style" selected>Your style</option>
    <option value="mini">Mini</option>
    <option value="bmw">Bmw</option>
</select>
<form method="post" action="websites/modificationStyle?numwebsite=<?php echo $numwebsite;?>">
    <div class="well">
        <p><strong><?php echo "Code Editor";?></strong></p>
        <textarea name="websitestyle" class="websitestyle_js" id="code1"><?php echo $websitedata['websitestyle'];?></textarea>
    </div>
    <button type="submit" class="btn btn-success form-control m-b"><?php echo "Modify Style";?></button>
</form> 

试试这个...它正在运作..

答案 2 :(得分:0)

尝试使用console logging retour,也许你应该使用responseText,另一个选择是尝试html(retour)而不是val

答案 3 :(得分:0)

CodeMirror是我用来创建冲突的Code样式。我解决了我的问题,谢谢大家给你的答案

相关问题