我有http://visiting/blog
页面。
控制器包含action_index和add_index方法。Action_index()
返回索引页面。Add_index()
调用模型的方法add_data()
,该方法将数据从表单插入数据库。
我需要使用ajax-request组织我的应用程序,http://visiting/blog
提交表单后该页面不会刷新。
看法
$.ajax({
type: 'POST',
url: '???', --------------------------> What should URL contain?
data: $(this).serialize()
控制器
function action_add() {
$title = $this->cleanStr($_POST["title_field"]);
$text = $this->cleanStr($_POST["text_field"]);
if ($title!="" && $text!="") {
$this->model->add_data($title, $text);
} else {
throw new Exception("Data is empty");
}
}
模型
public function add_data($title, $text) {
try {
$query="INSERT INTO post (title, text) VALUES('$title', '$text')";
self::$db->query($query);
} catch(Exception $e) {
echo $e->getMessage();
}
}
查看
这是一个带有ajax请求的完整html文件。我想处理表单,该页面不会刷新,并且数据已发送到数据库。
<div class="blog">
<h1> Blog </h1>
<form onsubmit="return validate()" id="add_form">
<fieldset>
<legend>Add new post:</legend>
<label>Title:</label><br>
<input type="text" name="title_field" id="titlef">
<br>
<label>Text:</label>
<br>
<textarea name="text_field" id="textf"></textarea>
<br>
<input onclick="return validate(); return false" type="submit" value="Submit">
<input onclick="return resetclass()" type="reset" value="Reset">
</fieldset>
</form>
<div class="blogposts">
<div id='response'></div>
<?php
foreach ($data as $values) {
echo "<div class=\"blog_item\">";
echo "<h4 class=\"blog_item_title\">" . $values["title"] . "</h4>" .
"<div class=\"blog_item_text\">" . $values["text"] . "</div>" .
"<div class=\"blog_item_time\">" . $values["time"] . "</div>";
echo "</div>";
}
?>
</div>
</div>
<script>
$(document).ready(function(){
$('#add_form').submit(function(){
// show that something is loading
$('#response').html("<b style=\"font-size:20px; margin:40px;\"\">Loading ...</b>");
$.ajax({
type: 'POST',
url: '???', ------------> What should be into url?
data: $(this).serialize()
})
.done(function(data){
// show the response
$('#response').html(data);
})
.fail(function() {
// just in case posting your form failed
alert( "Posting failed." );
});
// to prevent refreshing the whole page page
return false;
});
});
</script>
网址应该是您要命中的控制器方法的路径。您不必在网址中包含基本路径(但是,如果需要的话)。所以像这样:
url: "howeverYourStructureIs/Action_index",
点击方法action_index()。您可以将ajax看作是“就像您要访问页面一样,但实际上并没有导航到该页面”。因此,尽管您通常会使用该方法,但您将其放在ajax调用中的网址是。
希望这可以帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句