2017-02-14 8 views
0

Also ich bin neu in Javascript und nach langem Suchen fand ich nicht die Antwort die ich gesucht habe (vielleicht weil ich nicht die richtigen Bedingungen habe)

Also hier ist mein Skript:

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

Und hier ist mein 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> 

Was ich auf der Auswahl der Inhalt meiner Textbox ändern abhängig, jedes Mal, wenn der Benutzer klicken Sie tun wollte auf einem anderen mietoption soll das textarea ändern. Das Problem ist, dass es nichts ändert, also habe ich mich gefragt, ob meine Syntax falsch war oder ob etwas fehlte.

Ich druckte "retour" mit alert() und es enthält die Daten, die ich an die Textarea anhängen möchte, so dass es nicht davon kommt. Und ich versuche auch diese Zeile hinzufügen:

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

Jut allein am Ende meiner html, um zu sehen, ob es ein Syntaxfehler war, aber es ändert sich die Textarea.

Vielen Dank für Ihre Antworten.

EDIT1 (Ergebnis der console.log als gefragt):

console.log(retour)

EDIT2 (wie es für die von Ihnen am Ende sieht, die verwirrt sind):

code_editor

+0

Ihre Syntax sieht gut aus. Haben Sie überprüft, dass die AJAX-Anfrage tatsächlich erfolgreich abgeschlossen wurde? Die Tatsache, dass das Textfeld nicht aktualisiert wird, bedeutet, dass dies nicht der Fall ist. Überprüfen Sie den Status in der Konsole. –

+0

Überprüfen Sie die Browser-Entwicklerkonsole und sehen Sie, ob ein Fehler vorhanden ist oder nicht? –

+0

warum ist das 'select' außerhalb der' form'? – Laazo

Antwort

0

Probieren Sie die Problemumgehung über jquery bei Änderung aus. Hier ist eine Demo, die Textbereich ändert sich, wenn Sie

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

wählen ändern Vielleicht ist das nicht wirklich, dass Sie brauchen, aber es beantwortet im Allgemeinen Ihre Frage „Was ich wollte, ist zu tun, um die Änderung Der Inhalt meines Textfelds hängt von der Auswahl ab. Jedes Mal, wenn der Benutzer auf eine andere Option klickt, soll das Textfeld geändert werden ".

Live Demo

+0

Nun, es funktioniert in dem Fall wollte ich den Wert der Auswahloptionen verwenden, um zu ändern, was in der Textarea ist. Aber ich möchte andere Werte verwenden, die nicht in der HTML sind, deshalb brauche ich $ .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> 

Try this ... Es funktioniert ..

+0

Das einzige, was Sie ändern, ist, dass Sie das Skript vor den HTML-Code setzen, richtig? – Zethir

+0

in $ .post() Ich füge den Dateinamen richtig hinzu, zB "getstyle.php" ... entfernt auch Aus dem Formular-Aktionsattribut .... und prüft, ob die Antwort von getstyle kommt. php oder nicht..das ist es –

0

Try Konsolenprotokollierung retour, vielleicht sollten Sie response verwenden, eine weitere Option ist html (retour) statt val versuchen

0

Es war CodeMirror, den ich verwende, um den Code-Stil zu haben, der einen Konflikt verursachte. Ich reparierte mein Problem, danke Ihnen allen für Sie answers

Verwandte Themen