如何在同一页面中调用ajax页面?

我有两个文件demo.phppost.php 。 我怎么能在单页而不是两页。

demo.php

  Dynamic Form   $(document).ready(function(){ $("form").on('submit',function(event){ event.preventDefault(); data = $(this).serialize(); $.ajax({ type: "POST", url: "post.php", data: data }).done(function( msg ) { alert( "Data Saved: " + msg ); }); }); });    
Select... India Pakistan Us Other

post.php中

  

如何在不将数据从一个页面传递到另一个页面的情况下使用demo.php中post.php数据。

更改你的ajax的url

 $.ajax({ type: "POST", url: "demo.php", data: data }).done(function( msg ) { alert( "Data Saved: " + msg ); }); 

并在demo.php中添加它

  

我有一些个人观察:

  • 这是方法中的第一个:我不认为有两个单独的文件是一个坏主意。 这不是一个很好的优化。 现在,您希望单个文件以两种不同的方式处理GET请求和POST(一个用于AJAX,一个用于普通POST,以防您希望javascript正常降级。
  • 您可能想要删除该“onchange”属性。 研究Unobtrusive JavaScript的概念,了解为什么这是一个好习惯
  • 永远不要相信用户输入:始终清理并适当validation
  • bellow是重写文件的一个版本。 注意事项我已经将onChange重新考虑了一些更易于维护的内容,并且我正在使用JS来初始隐藏输入和提交按钮。 这样,如果禁用JS,用户仍可以添加国家/地区。
  • 为了确定post是如何被触发的,我将一个额外的标志ajax=1传递给post。

      

    动态表格$(文档).ready(function(){$(’#country’)。on(’change’,hideStuff);

      // hide the buttons to add extra option $('#other, #submit').hide(); function hideStuff() { var select = $(this); var flag = select.val() === 'other'; $('#other, #submit').toggle(flag); } $("form").on('submit',function(event){ event.preventDefault(); data = $(this).serialize() + "&ajax=" + 1; $.ajax({ type: "POST", url: $(this).data('url'), data: data }).done(function( msg ) { alert( "Data Saved: " + msg ); }); }); });    

这很简单,只需将下面的代码粘贴到上面的代码即可。

并删除jquery ajax调用。

   Dynamic Form   

您可以将url更改为demo.php并使用下面的一个以及exit();

  

首先你改变$ ajax的url

  $.ajax({ type: "POST", url: "demo.php", data: data }).done(function( msg ) { alert( "Data Saved: " + msg ); }); 

然后改变你的“demo.php”

    Dynamic Form      

试试这个

    

希望这对你有帮助,但我不明白“数据”是什么。 确保它是一个字段或提供页面所需值的变量。

 $("form").on("submit",function() { $.ajax({ type : "GET", cache : false, url : "post.php", data : { data : data }, success : function(response) { $('#content').html(response); } }); });