我在codeignitor中创建了一个表单,每当我尝试提交某些内容时,页面在chrome或firefox中都没有任何内容给我这样的信息:
地址不明白
Firefox并不知道如何打开这个地址,因为其中一个 以下协议(localhost)与任何程序或任何程序无关 在这种情况下是不允许的。
<?php $hidden = array('account_id' => '1'); echo form_open('post', '', $hidden); ?> <label for="post">Post:</label> <input type="text" name="post" id="post"/> <br/> <input type="submit" value="post" /> </form>
在Internet Explorer中,它试图找到一个打开页面的应用程序。
我可以直接访问相同的地址,但在提交表单时我不会让它这样做。
这是表格的代码:
<?php
class Post extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('posts_model');
$this->load->helper('url_helper');
$this->load->helper('form');
}
function index() {
$data['title'] = "posted";
$this->posts_model->add_post();
$this->load->view('templates/header', $data);
$this->load->view('comment/index', $data);
$this->load->view('templates/footer');
}
}
?>
这是帖子控制器:
function add_post() {
$data = array('person_acc_id' => $this-> input -> post('account_id'),
'post' => $this -> input -> post('post'),
'deleted' => 0,
'edited' => 0,
'post_time' => date('Y-m-d H:i:s', time()));
$this -> db -> insert('post', $data);
}
这是posts_model中的函数:
function createLobby(){
var ses = Parse.Object.extend("Session");
var query = new Parse.Query(ses);
var exists = false;
query.equalTo("sessionName", document.getElementById("lobby").value);
query.find({
success: function(results) {
console.log("Successfully retrieved " + results.length );
if(results.length!=0){
alert("Session already exists");
exists = true;
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
if(exists==false){
session.set("sessionName",document.getElementById("lobby").value);
var Players = Parse.Object.extend("Player");
var query = new Parse.Query(Players);
query.equalTo("Name", "testName");
query.find({
success: function(results) {
var query2 = new Parse.Query(Players);
query2.get(results[0].id, {
success: function(k) {
console.log(k);
session.add("Players", k);
},
error: function(object, error) {
// The object was not retrieved successfully.
// error is a Parse.Error with an error code and message.
}
});
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
session.save(null, {
success: function(object) {
$(".success").show();
},
error: function(model, error) {
$(".error").show();
}
});
}
}
答案 0 :(得分:1)
实际上你没有设置任何方法来形成。表示您的
form
操作错误。
在function index()
中调用视图。那么它的负载from
就在那里。因此,如果我点击表单提交<form>
,请转到 POST Controller
。因此再次执行 function index()
。这将像循环一样运行直到您修复它。
所以你需要做的就是。
在控制器中创建新方法以接收数据
public function validate_form()
{
#your Form validate Code goes here
}
在视图中 <form>
应为
echo form_open('post/validate_form', '', $hidden);
这就像
<form method="post" accept-charset="utf-8" action="http:/example.com/index.php/post/validate_form" account_id="1" />
答案 1 :(得分:1)
只需检查application/config
中的config.php,然后按以下方式更改您的链接:
$config['base_url'] = 'http://localhost/yourApp/';
我猜你之前的价值是这样的:
$config['base_url'] = 'localhost/yourApp/';
答案 2 :(得分:0)
我的代码实际上很好。一旦我把它放在真正的服务器上它就可以了。它不适用于localhost。