我正在努力尝试使用AJAX运行php脚本。要清楚我是javaScript和PHP的新手,所以我的代码可能完全错误。我认为问题出在我的按钮点击代码而不是ajax代码。任何帮助都很棒
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(".submit").click(function myCall() {
var subdata = $("#form").serializeArray();
var request = $.ajax({
url: "construct_new.php",
type: "GET",
data: subdata
});
return false;
});
</script>
<div>
<form id="form">
Name of Product: <input type="text" name="productName" value="Enter Here">
<input type="button" name="submit" value="Submit" class="submit">
</form>
</div>
答案 0 :(得分:2)
你需要在jQuery周围DOM ready wrapper因为它在元素存在之前执行(或者由浏览器呈现)。
您可以使用$(function(){ })
或$(document).ready(function(){ });
。
$(function(){
$(".submit").click(function myCall() {
var subdata = $("#form").serializeArray();
var request = $.ajax({
url: "construct_new.php",
type: "GET",
data: subdata
});
return false;
});
});
在这种情况下,您不需要serializeArray()
,只需serialize()
。
没有定义成功或完整的功能,因此在提交时不会看到任何内容,除非您看到开发者控制台/网络标签。
此外,使用表单的提交事件优先于提交按钮的单击事件。
$(function(){
$("#form").submit(function myCall() {
var subdata = $(this).serialize();
var request = $.ajax({
url: "construct_new.php",
type: "GET",
data: subdata,
success : function(response){
console.log("success!");
}
});
return false;
});
});
答案 1 :(得分:0)
将jQuery放在像这样的文档中,并阻止默认操作(提交表单):
public static bool numValidation(string strNum)
{
Regex regex = new Regex(@"^[0-9]+$");
return (regex.IsMatch(strNum)) ;
}
文档就绪确保页面已完成加载所有内容。 e.preventDefault()停止默认操作(对于表单,提交,标记,链接后)。