2010-12-21 20 views
0

Hallo Ich habe ein Forum und wenn ein Benutzer einen Kommentar erstellt, möchte ich, dass, wenn er nichts eingab ich ihm einen Fehler zeigen möchte, dass er etwas eingeben muss :) aber ich weiß nicht, wie zu setzen ihm das der Faden er ist in.validieren

ich habe diese

if($this->_submit_validate_comment() == false) { 
    $this->post(); return; 
} 

function _submit_validate_comment() { 
    $this->form_validation->set_rules('kommentar', 'kommentar', 'required|min_length[4]'); 
    return $this->form_validation->run(); 
} 

Antwort

3

du mit jquery tun könnte, aber wenn das nicht eine Option ist, dass Sie das Forum oder Thema-ID aus der uRL bekommen könnte (vorausgesetzt, Sie befinden sich Verwenden Sie die URL auf diese Weise).

Zum Beispiel:

http://yoursite.com/forum/topic/12

if($this->_submit_validate_comment() == false) 
{ 
    $topic_id = $this->uri->segment(3); 
    redirect('/forum/topic/'. $topic_id); 
} 

Oder

if($this->_submit_validate_comment() == false) 
{ 
    $topic_id = $this->uri->segment(3); 
    $this->topic($topic_id); 
} 

Hoffnung, das hilft.

+0

In Ihrer Umleitungsmethode Sie verwenden/forum/post /‘. $ this-> input-> post ('id') und deine Basis-URL ist localhost: 8888/ci /. Es könnte ein Problem mit der URL sein. Versuchen Sie, base_url() hinzuzufügen. '/ forum/post /' .... zu Ihrer Weiterleitung, um zu sehen, ob das hilft. Ich könnte mich irren, aber versuchen Sie das uri Segment von 3 auf 4 zu ändern, nur für den Fall, oder besser noch den Wert von $ this-> uri-> segment (3) aussprechen, um sicherzustellen, dass Sie den richtigen Wert erhalten. –

0

Danke für die Hilfe kann ich sehen, was Sie meinen, aber es nicht nur Arbeit: b,

ich habe diese

$ topic_id = $ this-> uri-> Segment (3); $ this-> post ($ topic_id); Rückkehr;

und meine url ist

localhost: 8888/ci/index.php/forum/create_comment

es sieht aus wie es die ID

meine URL zum Forum ist localhost finden können: 8888/ci/index.php/forum/post/33

das ist meine Funktionen

Funktion create_comment() { if ($ this -> _ submit_validate_comment() == falsch) {$ id = $ this-> uri-> segment (3); $ this-> post ($ id); Rückkehr; // echo "validiere fejl, kontakt lige de admin!"; } else {$ data = array ('fk_forum_traad' => $ this-> eingang-> post ('id'), 'brugernavn' => $ this-> session-> userdata ('benutzername'), 'indhold' => $ this-> Eingabe-> Post ('kommentar'), 'DATO' => 'fejl');

$ this-> load-> model ('forum_model'); $ this-> forum_model-> create_comment ($ data); Umleitung ('/ forum/post /'. $ this-> Eingabe-> Post ('id').'', 'Aktualisieren'); } }

Funktion Post ($ ID) { $ this-> Load-> Modell ('Forum_Model'); $ data ['query'] = $ this-> forum_model-> posts ($ this-> uri-> segment (3));

$ this-> load-> model ('forum_model'); $ data ['comments'] = $ this-> forum_model-> Kommentare ($ this-> uri-> segment (3));

$data['content'] = 'forum_post_view'; 

$ this-> last-> Ansicht ('includes/template', $ data); }

0

Warum nicht geben Sie die Rückkehr URI in der Formularübergabe mit einem versteckten Eingabefeld? Vom Controller wird keine zusätzliche Arbeit benötigt, abgesehen von der Validierung des Rückgabe-uri vor der Durchführung einer Weiterleitung.

Setzen Sie den Validierungsfehler Zeichenfolge in flashdata Sitzung Klasse in Form Echo aus, zusammen mit anderen Daten verwendet, um das Formular vorab zu füllen)