此表单工作正常,例如它停止表单提交,控制台日志中没有javascript错误。但是,当我按下提交时,我会收到一条警报。我在互联网上搜索了多种解决方案,他们都为我提供了同样的解决方案。
这是我的Javascript / Html
<script>
$(function(){
$("#submit").click(function(event){
event.preventDefault();
$.ajax({
type:"post",
url:"templates/process-token.php",
data:$("#form").serialize(),
success:function(response){
alert(response);
}
});
});
});
</script>
<form id="form" method = "post" action = "security_check">
<input type = "text" name = "fld1" id = "fld1" />
<input type = "text" name = "result1" id = "result1" value = "value_from_php_page" disabled />
<input type="submit" value="Submit" id="submit">
</form>
这是PHP,它很简单但不起作用
<?php
echo $_POST["fld1"];
?>
这里的任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
你可以用JSON两种方式做到这一点。以下是我将如何在JavaScript和PHP中实现此类功能。
jQuery中有一个很棒的功能,它是获取JSON数据的快捷方式。这是$ .ajax专门用于简单调用的快捷方式。
$.getJSON( "templates/process-token.php?"+$("#form").serialize(), function( data ) { alert( data.reponse ) } );
PHP可以返回一个json编码的字符串,因此可以更容易地从JavaScript代码访问它。
<?php echo json_encode( array('response'=>$_POST['fld1']) ); ?>
答案 1 :(得分:1)
将data
从$('#form').serialize()
更改为一个测试变量,以便您可以查看导致问题的是JS还是PHP。
在您的PHP页面上:
<?php
isset($_POST["fld1"]) ? $myvar1 = $_POST["fld1"] : $myvar1 = 'No data passed...';
echo $myvar1;
?>
这确认 1}} fld1
中的$_POST
,如果没有,则说明这样做会带走猜测工作......
答案 2 :(得分:0)
仅当文本框#fld1为空时才会发生这种情况。在文本框中键入内容即可。