2010-11-22 14 views
1

Bazı ayarları düzenlemek için ajax işlevi oluşturuyorum. kod yazıcısı :: url'yi param olarak gönder?

bu

(yani)

url http://example.com/setting1/setting2/setting3

olurdu Bu iyi çalışır ancak url yoluyla ele alınması gerekir. Ayarlardan biri bir URL'dir.

Bunu nasıl bu şekilde geçebilirim? URI Sınıfı

+1

Bir POST isteği (yerine GET isteği) için Ajax arama anahtarlama düşünmelisiniz işe yarayabilir. Bu çoğu AJAX araç takımında yapmak kolaydır. –

cevap

5

bu

$url = 'http://stackoverflow.com/questions/4245416/code-igniter-send-url-as-param'; 

$encoded = base64_encode($url); 
//aHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MjQ1NDE2L2NvZGUtaWduaXRlci1zZW5kLXVybC1hcy1wYXJhbQ== 

// Make your URL 
$my_url = "site.com/controller/method/params/params/" . $encoded; 

// redirect or whatever 

$encoded_url = $this->uri->segment(4); // (or wherever the URL is) 

$url = base64_decode($encoded_url); 
// http://stackoverflow.com/questions/4245416/code-igniter-send-url-as-param 
+0

+1. Bunu yapmamın tek yolu bu. Ama elbette POST isteğine geçmek daha iyidir. –

0

Görünüş: index.php/user/search/ad/Joe itibaren http://codeigniter.com/user_guide/libraries/uri.html

/yer/Birleşik Krallık/cinsiyet/erkek

Sen alabilirsiniz:

[array] 
(
    'name' => 'joe' 
    'location' => 'UK' 
    'gender' => 'male' 
) 

Kullanıldığı yer:

$array = $this->uri->uri_to_assoc(3); 

Ayrıca, $ this-> uri-> segment_array() öğesini da bulabilirsiniz.

+0

Bunun farkındayım. //stackoverflow.com/: Fakat, params biri ' index.php/user/search/ad/Joe/yer/http ile bitirmek url'sidir (Konum bir web sitesi konumdur diyelim) users/383759/hailwood/gender/male' – Hailwood

+0

Burada segment_array() ile deneyin, eğer/ajax/setting1/setting2 gibi bir şey varsa ilk değeri göz ardı edebilirsiniz. Çalışacak. – ipalaus

+0

Sorun bu değil. Sorun, URL'deki karakterler onu kırıyor. – Hailwood

İlgili konular