我在index.php中有一个表单,它将一个JSON对象发送给" getProducts.php"我想通过回显到屏幕或登录控制台以某种方式将数据返回到index.php。但我尝试了这两种技术,没有任何记录或进入屏幕。我运行了PHP调试器,在这两种情况下,它都会回显真正的填充值,但没有任何东西可以进入屏幕或控制台。为什么我的getProducts.php回显没有进入屏幕或控制台?
的index.php:
<form role="form"
id="search-filter-form"
action="scripts/back_end/getProducts.php"
method="post">
<div class="row">
<div class="col-sm-9">
<h1 id="search-filter-heading"
class="heading form-group">FILTER YOUR SEARCH.
</h1>
</div>
<div class="col-sm-6 col-md-3">
<div id="search-button" class="form-group">
<input id="search-input"
placeholder="SEARCH KEY WORD">
</input>
<div id="search-icon"></div>
</div>
</div>
</div>
<div class="row">
<?
echo RegionSelectTemplate::display();
echo TownSelectTemplate::display();
echo SuburbSelectTemplate::display();
echo CategorySelectTemplate::display();
?>
</div>
<div class="row">
<div class="col-sm-12">
<input type="submit"
value="FIND ME SOME VEGAN GOODIES"
id="go-button"
class="with-border clickable">
</input>
</div>
</div>
</form>
处理表单提交事件:
$("#search-filter-form").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
url = $form.attr( 'action' );
/* Send the data using post */
var posting = $.post( url, { region: s.regionSelect._selectedAreaName, town: s.townSelect._selectedAreaName } );
/* Alerts the results */
posting.done(function( data ) {
console.log('post success');
});
});
这是getProducts.php:
<?
function debug_to_console( $data ) {
if ( is_array( $data ) )
$output = "<script>console.log( 'Debug Objects: " . implode( ',', $data) . "' );</script>";
else
$output = "<script>console.log( 'Debug Objects: " . $data . "' );</script>";
echo $output;
}
if( $_POST["region"] || $_POST["town"] ) {
debug_to_console($_POST);
exit();
}
?>
不确定是否值得一提的是index.php代码顶部是模板。代码中的Index.php如下所示:
<!DOCTYPE html>
<?
header("X-Frame-Options: DENY");
header("Content-Security-Policy: frame-ancestors 'none'", false);
require 'scripts/back_end/views/template_engine.php';
require 'scripts/back_end/views/view.php';
?>
<html lang="en-US">
<head>
<?
echo HeadTemplate::display();
?>
</head>
<body>
<?
echo NavbarTemplate::display();
echo LandingPageTemplate::display();
echo SearchFilterPageTemplate::display();
echo SearchResultsPageTemplate::display();
echo TvrScriptsTemplate::display();
?>
</body>
</html>
但是index.php表单的结束html输出是问题的顶部
答案 0 :(得分:2)
您需要使用posting.done()
回调函数中的响应执行所需操作。这将把它添加到DOM,它将呈现HTML并执行脚本。
post.done(function(data) {
$("#somediv").html(data);
});
答案 1 :(得分:0)
听起来你需要使用已经使用的ajax
投入一些jquery
$("#search-filter-form").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
url = $form.attr( 'action' );
$.ajax({
type: "POST",
url: "getProducts.php?",
data: "region="+ s.regionSelect._selectedAreaName+
"&town="+ s.townSelect._selectedAreaName,
success: function(data) {
alert(data);
//or
window.console&&console.log(data);
}
});
});