php - 如何在不离开页面的情况下将姓名插入数据库并在提交页面上显示多个表单

标签 php mysql ajax

我是 php 和 ajax 新手,并试图找到解决我的挑战的方法。 预先感谢您的任何建议。

我有多个表单,每个表单都有一个名称值。我需要在每个表单上单击“提交”,然后通过调用 insert.php 将名称插入数据库 mytable

每次我在任何表单上单击“提交”时,名称 inseertd 始终是第一个表单“tommy”中的名称

每个表单上还会显示“注册成功”消息。

所以我的挑战是仅插入正在提交的表单中的姓名。

我还想在成功插入后将表单按钮文本从“插入”更改为“已插入”。

forms.php

<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
</script>
<script type="text/javascript" >
$(function() {
$(".submit").click(function() {
var name = $("#name").val();
var dataString = 'name='+ name;

if(name=='')
{
$('.success').fadeOut(200).hide();
$('.error').fadeOut(200).show();
}
else
{
$.ajax({
type: "POST",
url: "insert.php",
data: dataString,
success: function(){
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
}
});
}
return false;
});
});
</script>

<form method="post" name="form">
<input id="name" name="name" type="text" value="harry"/>
<div>
<input type="submit" value="Insert" class="submit"/>
<span class="error" style="display:none"> Please Enter Valid Data</span>
<span class="success" style="display:none"> Registration Successfully</span>
</div>
</form>

<form method="post" name="form">
<input id="name" name="name" type="text" value="tommy"/>
<div>
<input type="submit" value="Insert" class="submit"/>
<span class="error" style="display:none"> Please Enter Valid Data</span>
<span class="success" style="display:none"> Registration Successfully</span>
</div>
</form>

插入.php

<?php
if($_POST)
{
$name=$_POST['name'];
mysql_query("INSERT INTO `mydbase`.`mytable` (`id`, `name`) VALUES (NULL, '$name')");
}else { echo 'Failed'; }

?>

最佳答案

您需要找到提交的表单。

$('.submit').click(function(e){
  e.preventDefault();
  var form = $(this).parents('form')[0];
  var name = $(form).find('input#name').val();
  ...
});

要显示您的消息:

$(form).find('.success').fadeOut(200).hide();
$(form).find('.error').fadeOut(200).show();

关于php - 如何在不离开页面的情况下将姓名插入数据库并在提交页面上显示多个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38167186/

相关文章:

javascript - Ajax 响应 Laravel 到对象

javascript - ASP.NET MVC5 : live loaded partial view doesn't load dynamic Javascript reference

php - 从 mysql JOIN 获取所有结果,即使没有连接匹配

java - servlet 登录应用程序中未找到列异常

php-fpm 和 nginx : How to set display_errors = on but also get HTTP 500?

python - 从 SQLAlchemy 中的时间戳中选择日期

php - 如何更改默认错误消息代码

javascript - 如何仅使用 a 标签通过 AJAX 进行 POST

php - 服务器 'upgrade' 之后 MySQL/PHP 站点速度极慢 - PHP 版本问题?

php - fatal error : Uncaught Facebook\WebDriver\Exception\UnknownServerException: Timed out waiting for driver server to start with ChromeDriver and Selenium