0
私は動的に複数の選択リストを作成しました。チャンネル名をクリックすると、そのタイプが取得されます。問題は、一度選択リストをクリックすると、Javaスクリプト関数を繰り返し呼び出すことで、ajaxを複数回読み込むことになります。
HTMLコード:動的に作成された選択リストは、JavaScript関数mutilpleの呼び出しを行います
<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コード:
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("");
}
});
});
}
感謝。私はselect codeと$( "。channelname")でget_type(this)を保ちました。javascritpt関数でchange(function(){}が働いています – Arti
ajaxの処理にはデータをロードするのに10秒かかります。 – Arti