Ich habe dynamisch mehrere Auswahlliste erstellt. Nach dem Klick auf den Kanalnamen sollte der Typ angezeigt werden. Das Problem ist, wenn man auf die select-Liste klickt, wird die Java Script-Funktion wiederholt aufgerufen, wodurch ajax mehrmals geladen wird.
HTML-Code:Dynamisch erstellte Auswahlliste macht vielfache Aufrufe von JavaScript-Funktion
<td>
<SELECT name="channel_name[]" onclick ="get_type(this)"; required class='channelname'>
<option value="">Select...</option>
<?php foreach($channel_list as $row) {
$channelid = $row['channelid'];
$channelname = $row['channelname'];
if($U_channelid==$channelid)
{
$s = "selected = selected";
}
else
{
$s = "";
}
echo "<option value='$channelid' $s>".$channelname."</option>";
?>
<!-- <OPTION value='<?php echo $channelid ?>' $s ><?php echo $channelname?></OPTION> -->
<?php } ?>
</SELECT>
</td>
Javascipt Code:
function get_type()
{
$(".channelname").live("change", function() {
var channel_id = $(this).find("option:selected").attr("value");
var _this = $(this); //Save current object
alert(channel_id);
$.ajax({
type: "POST",
url: '<?php echo base_url(); ?>index.php/partner/get_channel_type',
data: 'channelid='+channel_id,
async: false
}).done(function(data1) {
if(data1){
_this.closest("tr").find('input[name="type[]"]').val(data1);
}else{
alert("Channel type is not defined");
_this.closest("tr").find('input[name="type[]"]').val("");
}
});
});
}
Dank. Ich hielt get_type (this) im Select-Code und $ (". Channelname"). Change (function() {in javascritpt-Funktion. Es funktioniert jetzt – Arti
Ajax-Verarbeitung dauert 10 Sekunden, um die Daten zu laden. Können wir es minimieren ?? – Arti