2017-02-14 39 views
0

所以我是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

+0

你的語法看起來不錯。你是否檢查過AJAX請求實際上是否成功完成? textarea沒有被更新的事實意味着它不是。檢查控制檯中的狀態。 –

+0

檢查瀏覽器開發者控制檯並查看是否有錯誤? –

+0

爲什麼在'form'之外的'select'? – Laazo

回答

0

嘗試通過jQuery變通解決方案。下面是當你改變選擇

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

JS

$('select[name=style_website]').on('change', function (e) { 
var optionSelected = $("option:selected", this); 
var valueSelected = this.value; 
$('.websitestyle_js').val(valueSelected); 
}); 

也許這是不是真的,你需要改變textarea的演示,但它通常回答你的問題「我想要做的是改變我的textarea的內容取決於select,每次用戶點擊一個不同的選項時,都假設它改變了textarea「。

Live Demo

+0

它的工作原理是,我想用select選項的值來改變textarea中的內容。但我想使用其他值,這不是在HTML中,這就是爲什麼我需要$ .post – Zethir

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> 

嘗試......這是工作..

+0

你改變的唯一的事情是你把腳本放在HTML之前,對吧? – Zethir

+0

in $ .post()我正確地添加文件名,即「getstyle.php」...也從表單動作屬性中刪除<?php echo base_url();?>並且檢查響應是否從getstyle返回。 PHP或不..這就是它 –

0

嘗試控制檯記錄RETOUR,也許你應該使用responseText的,另一種選擇是嘗試,而不是VAL

HTML(RETOUR)
0

這是CodeMirror,這是我用來創建衝突的代碼風格。我解決了我的問題,謝謝大家的支持