已经有三天时间试图解决我的表单以正确提交 . 我最后再次安装codeigniter和杂货店crud,但它始终是同样的问题 .
如果我在输入中键入一个url来更新它在数据库中它将无法工作:
http://example.cc
但如果我在它之前添加一个返回(空行),它会正确提交 .
(NEW LINE)
http://example.cc
同时,如果它包含某些标签,我无法使用html更新列
<input>
只需点击 project properties 并尝试更新youtube视频网址或尝试更改paypal_form
编辑:我觉得很奇怪的是我可以更新示例附带的表格的描述列(点击产品链接并尝试将代码放在下面并且它有效)但不适用于项目属性 - > desription
这是一个示例代码行,如果我键入表单不提交:
<input>
下面是我试图通过杂货店编辑的数据库
那么什么可能导致这个问题呢?我的表和示例表具有相同的列类型,但列数和它们的名称不同
以下是我在控制器中用来生成表格的代码:
$crud = new grocery_CRUD();
$crud->set_theme('datatables');
$crud->set_table('uf_object_properties');
$crud->set_subject('Property');
$crud->required_fields('value');
$crud->columns('property_name', 'property_value');
$output = $crud->render();
$this->load->view('myview.php', $output);
2 回答
Grocery_CRUD将从文本输入中删除输入中的任何标记,以使内容安全 . 如果要添加HTML,请将mysql列的数据类型更改为“text”并使用HTML编辑器 . 可能有一个工作,但你需要进入库代码 .
好吧经过艰苦的努力后,它变成了杂货店的一个BUG .
简单地说,如果列名包含字母V或类似的东西,它将无法正常使用html标签或特殊字符
我开始逐列删除示例,这个示例对我来说是有意义的,以便在减少所有列工作之后创建我想要的表结构,之后我开始逐列重命名它们并且一旦我将列'productDescription'重命名为' propertyValue'这是我想要停止工作的列的名称 . 所以我开始逐字删除,发现问题在于列名 .
产生此问题的列名称的例子:
所以我只是用另一个单词替换了第二个单词的值,问题就解决了 .
But seriously this is a very confusing bug that needs to be fixed sooner or later
EDIT : 以上名称不会导致杂货店停止工作,只是使其无法提交包含例如
<input>
或http://exmple.cc等链接的信息谢谢大家的帮助