我正在使用 bootstrap 和更多库创建一个输入字段(请参阅下面的 HTML,是的,它是荷兰语)。来自该字段的数据使用 jQuery 发送到我的 PHP(见下文)。我使用 jQuery 将 Markdown 输入转换为 HTML,使用摊牌。
PHP 生成一个文件,其中存储了正确的输入数据,并用“|”分隔。 “作者”输入是可选的。这一切都很好
出现的问题是我想给用户反馈,使用 echo 。只是,这似乎没有完成?! PHP 中的所有其他函数都会执行,它会在目标目录中创建一个文件,echo 除外。
我无法在 Stackoverflow 或其他任何地方找到答案。我做错了什么?
HTML
<div class="panel panel-default">
<div class="panel-heading">
Nieuw artikel toevoegen
</div>
<div class="panel-body">
<div class='edit'>
<form action='' method='post'>
<div class='input-group'>
<span class='input-group-addon' id='basic-addon1'>Kop*</span>
<input type='text' class='form-control' placeholder='Kop' aria-describedby='basic-addon1' id='title'>
</div>
<br>
<div class='input-group'>
<span class='input-group-addon' id='basic-addon1'>Datum*</span>
<input type='text' class='form-control' placeholder='Datum' aria-describedby='basic-addon1' id='date'>
</div>
<br>
<div class='input-group'>
<span class='input-group-addon' id='basic-addon1'>Auteur (evt.)</span>
<input type='text' class='form-control' placeholder='Auteur (evt.)' aria-describedby='basic-addon1' id='author'>
</div>
<br>
<div>
<h4>Inhoud van het artikel*</h4>
<textarea name='textArt' data-provide='markdown' language='nl' rows='20' id='text'></textarea>
</div>
<!--<input type='file' id='filetag'>-->
<br>
<button name='save' class='btn btn-default' id='submit'>Opslaan</button><br>
</form>
</div>
</div>
jQuery
$(document).ready(function(){
$("#submit").click(function(){
//Request input
var author = $("#author").val();
var date = $("#date").val();
var title = $("#title").val();
var markdown = $("#text").val();
//Convert Markdown to HTML
var converter = new showdown.Converter(),
html = converter.makeHtml(markdown);
//Send input
if($.post("edit.php?loc=nieuws", {text: html, title: title, date: date, author: author})){
console.log("succes");
}
})
})
PHP
if ($_POST['text'] != "") {
$directory = "some_target_dir/";
$articles = scandir($directory);
$num_files = count($articles) - 2;
$int = $num_files + 1;
$dir = $directory.$int.".txt";
$end = $_POST['date']."|".$_POST['title']."|".$_POST['text'];
if(!$_POST['author'] == "") {
$end = $end."|".$_POST['author'];
}
$file = fopen($dir, "w") or die("Oops a mistake");
fwrite($file, $end);
fclose($file);
//This one doesn't work?!
echo '<div class="alert alert-success">Succes!</div>';
}
最佳答案
也许您的 PHP 代码的一部分失败了,请调试返回的内容,如下所示:
$.post("url", {params}).done(function(result){
console.log(result);
// This will show you what the returning output is.
});
编辑:将您的代码更改为:
$(document).ready(function(){
$("#submit").click(function(e){
e.preventDefault();
//Request input
var author = $("#author").val();
var date = $("#date").val();
var title = $("#title").val();
var markdown = $("#text").val();
//Convert Markdown to HTML
var converter = new showdown.Converter(),
html = converter.makeHtml(markdown);
//Send input
if($.post("edit.php?loc=nieuws", {text: html, title: title, date: date, author: author})){
console.log("succes");
}
})
})
关于PHP echo 在 POST 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41790414/