如何让php POST代码在Javascript代码之前运行?
我有一个网站,所有的错误信息都显示在页面顶部的“div”中。我需要更改代码,使错误显示为警报,但我不知道如何正确计时 我已经创建了一个更简单的示例来说明我要做的事情 我希望发生以下情况:如何让php POST代码在Javascript代码之前运行?,javascript,php,jquery,Javascript,Php,Jquery,我有一个网站,所有的错误信息都显示在页面顶部的“div”中。我需要更改代码,使错误显示为警报,但我不知道如何正确计时 我已经创建了一个更简单的示例来说明我要做的事情 我希望发生以下情况: 用户在“字母”输入中键入字母 用户单击提交按钮 表单POST和PHP代码检查键入的字母并设置变量($FROUT) HTML重新呈现,如果变量($FROUT)有一个值,它将被放入“FROUT”输入中。(这里的目的是将结果放在Javascript可以到达的地方。) 然后Javascript执行并显示一个警报,显示“
/* myTestScripts.js */
$(document).ready(function() {
window.onsubmit = function (e) {
e.preventDefault();
alert($("#fruit").val());
};
});
这是我的index.php文件:
<!DOCTYPE html>
这只适用于聚会。它不会更新“水果”输入,因此也不会在警报中显示它
如果处理此信息的PHP代码在我的“index.PHP”文件中,那是我传入的URL吗?或者我必须从index.php中取出所有处理代码,将其另存为一个单独的文件,然后将新文件传入吗
如何让php POST代码在Javascript代码之前运行
除了使用ajax
之外,您的PHP代码以前从未像javascript那样运行过
在您的情况下,您只想在警报中显示一些内容。如果我理解您的意思,您必须将包含“error”和echo
的变量存储到javascript变量中
当然,以下几行应该在相同的php
文件中
<script type="text/javascript">
var error = "<?php echo $error; ?>";
alert(error);
</script>
var误差=”;
警报(错误);
如何让php POST代码在Javascript代码之前运行
除了使用ajax
之外,您的PHP代码以前从未像javascript那样运行过
在您的情况下,您只想在警报中显示一些内容。如果我理解您的意思,您必须将包含“error”和echo
的变量存储到javascript变量中
当然,以下几行应该在相同的php
文件中
<script type="text/javascript">
var error = "<?php echo $error; ?>";
alert(error);
</script>
var误差=”;
警报(错误);
我建议在jQuery/客户端中完成这一切
注意:这并不能回答您的问题,只是一个建议
这样,您就不需要重新加载页面
将onClick侦听器添加到submit按钮,并使用preventDefault
阻止提交。
然后执行检查并将结果插入输入:
$('#click').click(function(event){
event.preventDefault();
var letter = $('#letter').val(),
fruit = "No fruit for you!";
switch(letter){
case 'A':
fruit = 'Apple';
break;
case 'B':
fruit = 'Banana';
break;
}
$('#fruit').val(fruit);
});
我建议在jQuery/客户端中完成这一切 注意:这并不能回答您的问题,只是一个建议 这样,您就不需要重新加载页面 将onClick侦听器添加到submit按钮,并使用
preventDefault
阻止提交。
然后执行检查并将结果插入输入:
$('#click').click(function(event){
event.preventDefault();
var letter = $('#letter').val(),
fruit = "No fruit for you!";
switch(letter){
case 'A':
fruit = 'Apple';
break;
case 'B':
fruit = 'Banana';
break;
}
$('#fruit').val(fruit);
});
嗯,你不应该这样处理这个问题 我相信,您想要实现的目标可以通过Ajax实现 我喜欢使用jQuery进行Ajax调用,下面是一个示例:
$.ajax({
url: "test.html",
context: yourFormFields
}).done(function() {
$( this ).addClass( "done" );
});
如果您想了解更多信息:
好吧,你不应该这样处理这个问题 我相信,您想要实现的目标可以通过Ajax实现 我喜欢使用jQuery进行Ajax调用,下面是一个示例:
$.ajax({
url: "test.html",
context: yourFormFields
}).done(function() {
$( this ).addClass( "done" );
});
如果您想了解更多信息:
window.onsubmit()在表单提交时,但在数据发送到服务器之前激发。如果您希望在页面从服务器返回后根据您用php填充的输入值生成警报,可以执行以下操作:
$(document).ready(function() {
if($('#fruit').val() != '') {
alert($('#fruit').val());
};
});
这不一定是处理这种情况的最佳方式(正如其他人所指出的),但我相信这是对您所问问题的最直接的回答。window.onsubmit()在表单提交时,但在数据发送到服务器之前触发。如果您希望在页面从服务器返回后根据您用php填充的输入值生成警报,可以执行以下操作:
$(document).ready(function() {
if($('#fruit').val() != '') {
alert($('#fruit').val());
};
});
这不一定是处理这种情况的最佳方式(正如其他人所指出的),但我相信这是对您所问问题的最直接的回答。一种更标准、更灵活的模式是将要使用ajax请求完成的
PHP
分离为自己的文件,而不是直接在HTML中
因此,让我们创建一个ajax端点
my-ajax-endpoint.php
}))
这是一个灵活的模式,可以用于许多不同的用例。您可以使用关联数组通过
json\u encode()
传回更多数据。使用$form.find(“[name=youinput]”)可以轻松地更新表单元素。一种更标准、更灵活的模式是将ajax请求中的PHP
分离为自己的文件,而不是直接在HTML中
因此,让我们创建一个ajax端点
my-ajax-endpoint.php
}))
这是一个灵活的模式,可以用于许多不同的用例。您可以使用关联数组通过json\u encode()
传回更多数据。使用$form.find(“[name=youinput]”)可以轻松地更新表单元素。使用AJAX。这很简单,使用AJAX。是的。我想你的意思是“永远运行”=>“永远运行”。我想你的意思是“永远运行”=>“永远运行”。如果op不打算提交到post,那么他们需要将提交按钮更改为只包含onclick事件的按钮。违约被贬值,最终会随着时间的推移而失败。在现实世界的应用程序中,Doctype HTML的方式是首选方式,除非您喜欢Ajax…event.preventDefault不推荐使用
。它是?我在中没有看到任何东西,也没有给出任何指向该方向的结果…@Danimal说preventDefault()
不推荐使用是很荒谬的。举出你的苏
$("#form_to_submit").submit(function (evt) {
evt.preventDefault();
var $form = $(this); // the form we are acting on
// xhr is a defered object
var xhr = $.ajax({
url: $form.attr('action'), // the url of the action
data: $form.serialize(), // send all the form fields
method: $form.attr('method') // POST or GET
});
// handle the data
xhr.done(function (data) {
// find the fruit field and store the fruit value
$form.find("[name=fruit]").val(data.fruit);
alert("Your fruit: " + data.fruit);
});
// handle HTTP errors
xhr.fail(function (jqXHR, textStatus) {
alert("Error: " + textStatus);
});