というコントローラがあり、その中にget_user_timeline
とdo_upload
のようないくつかの機能があります。 get_user_timeline
は、JQueryからajax呼び出しでprofile_view
にロードされます。それは60秒ごとにtwitterタイムラインを引き出す機能です。JQueryスクリプトが正しく読み込まれていない
私はdo_upload関数を呼び出すためにビューにフォームを入れた後、うまく動作していました。 do_upload
機能は、画像やmp3などのファイルをサーバーにアップロードする機能です。私はフォームの検証をその関数に入れました。ユーザーがその全体からいっさいを記入しなかったときには、何らかの警告をもってprofile_view
にリダイレクトされます。私はdo_upload
機能の$this->index()
と呼んでそれを行いました。
私のコードをテストしたとき、私はいくつかの入力を空白のままにしてフォームを提出しました。 profile_view
は素晴らしいフォーム検証エラー警告がロードされていますが、JitterはTwitterのタイムラインを表示しないため、Jqueryはもう動作しません。私はURLをチェックした。それはhttp://localhost/myproject/profile/do_upload
の代わりにhttp://localhost/myproject/profile
と言う。それはCIのデフォルトの動作ですか?それに対処する方法?私のJqueryはhttp://localhost/myproject/profile
としか動作しないようですが、アドバイスを教えてもらえますか?ありがとう
ここに私のコードです。 プロファイルコントローラ
<?php
class Profile extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->library('tweet');
$this->load->library('form_validation');
$this->load->model('user_model');
}
function index()
{
if($this->session->userdata('is_logged_in') == TRUE)
{
$data['biography'] = $this->user_model->get_user_by_id($this->session->userdata('user_id'));
$data['user'] = $this->tweet->call('get', 'users/show', array('id' => $this->session->userdata('user_id')));
$data['main_content'] = 'private_profile_view';
$this->load->view('includes/template', $data);
}
else
{
redirect('welcome');
}
}
/** timeline features **/
function get_home_timeline()
{
$timeline = $this->tweet->call('get', 'statuses/home_timeline');
echo json_encode($timeline);
}
//the do_upload function
function do_upload()
{
$config['upload_path'] = './media/';
$config['allowed_types'] = 'mp3';
$config['max_size'] = '30720';
$this->load->library('upload', $config);
//set validation rules
$this->form_validation->set_rules('title', 'Song title', 'trim|required|xss_clean');
$this->form_validation->set_rules('album', 'Album', 'trim|required|xss_clean');
$this->form_validation->set_rules('artist', 'Artist', 'required|xss_clean');
$this->form_validation->set_rules('song_license_agreement', 'License', 'required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
$this->index(); //this return the warning but make my Jquery fail
}
}
.JS
$(document).ready(function(){
update_timeline('profile/get_home_timeline', '#home_timeline ul', 'home'); //this is call to the timeline, this won't work if i submit the upload form
});
function update_timeline()
{
//my ajax call goes here
}
VIEW
<div id="timeline" class="">
<ul>
<li><a href="#home_timeline" id="home_timeline_menu">Home</a></li>
<li><a href="#user_timeline" id="user_timeline_menu">MyStatus</a></li>
<li><a href="#mentions_timeline" id="mentions_timeline_menu">@me</a></li>
</ul>
<section id="home_timeline">
<ul>
<!-- this is where the timeline goes -->
</ul>
</section>
<div>
<!-- and this is the form -->
<article id="music_upload_form">
<?php echo validation_errors(); ?>
<?php echo form_open_multipart('profile/do_upload');?>
<input type="hidden" id="user_id" name="user_id" value="<?php echo $user->id_str;?>" />
<label for="title">Song Title</label>
<input type="text" name="title" id="title" size="30" value="<?php echo set_value('title'); ?>"/><br />
<label for="album"> Album Title </label>
<input type="text" name="album" id="album" size="30" value="<?php echo set_value('album'); ?>"/><br />
<label for="artist">Artist</label>
<input type="text" name="artist" id="artist" size="20" value="<?php echo set_value('artist'); ?>"/><br />
<input type="file" name="userfile" size="20" /><br />
<input type="radio" name="owner" id="license" value="<?php echo set_value('owner'); ?>"/>I AM the artist/owner of this song and I have the right for distribution<br />
<input type="radio" name="licensed_user" id="license" value="<?php echo set_value('licensed_user');?>"/>I AM NOT the artist/owner of this song BUT I have the right for distribution</br>
<input type="checkbox" name="song_license_agreement" value="<?php echo set_value('song_license_agreement');?>"/>By selecting this option, I swear that all information entered is right<br />
<input type="submit" value="Upload Your Song" />
</form>
</article>
アップ、申し訳ありません。私の英語は悪いです。私は自分のコードを投稿します。私はあなたの解決策を試しました: – under5hell
@Madmartigan:私はいくつかの編集を行いました、うまくいけば今理解しやすくなります – nico
@nicoありがとう:-) – under5hell