gpt4 book ai didi

php - Ajax /JS : Grabbing multiple input fields without refresh or button click and php echoing the value

转载 作者:行者123 更新时间:2023-11-30 06:40:38 24 4
gpt4 key购买 nike

我目前正在使用 Ajax/JS 提交表单,而无需刷新页面或单击按钮。我已经用 keyup 设置了一个计时器来触发该功能。我已经用一个输入字段对其进行了测试并且运行良好,但是现在已经添加了其他输入字段,我没有得到 PHP 回显的结果。我已经用 firefox 错误工具检查过,结果正在存储中。我不确定这是 JS 还是 PHP 问题。

如何在用户停止输入后正确回显输入字段的值? EXAMPLE

JS/AJAX

<script>
$(document).ready(function() {
var timer = null;
var dataString;
function submitForm(){
$.ajax({ type: "POST",
url: "index.php",
data: dataString,
success: function(result){
$('#special').html('<p>' + $('#resultval', result).html() + '</p>');}
});
return false;
}
$('#contact_form').on('keyup', function() {
clearTimeout(timer);
timer = setTimeout(submitForm, 2000);
var name = $("#contact_name, #email, #phone, #address, #website").val();
dataString = 'name='+ name;
});
});
</script>

HTML/PHP 片段

<form action="" method="post" enctype="multipart/form-data" id="contact_form" name="form4">
<div class="row">
<div class="label">Contact Name *</div> <!-- end .label -->
<div class="input">
<input type="text" id="contact_name" class="detail" name="contact_name" value="<?php echo isset($_POST['contact_name'])? $_POST['contact_name'] : ''; ?>" />
<div id="special"><span id="resultval"><? echo $_POST['contact_name']; ?></span></div>
</div><!-- end .input-->
</div><!-- end .row -->

<div class="row">
<div class="label">Email Address *</div> <!-- end .label -->
<div class="input">
<input type="text" id="email" class="detail" name="email" value="<?php echo isset($_POST['email'])? $_POST['email'] : ''; ?>" />
<div id="special"><span id="resultval"><? echo $_POST['email']; ?></span></div>
</div><!-- end .input-->
</div><!-- end .row -->

最佳答案

您不需要尝试进行批量分配,而是需要建立数据。例如,您目前拥有:

    var name = $("#contact_name, #email, #phone, #address, #website").val();

jquery 应该匹配它匹配的第一个标识符,最有可能是 id 为 contact_name 的元素,这将是 name 具有的唯一值,因为您希望获得多个表单字段的数据。

事实上,您根本不需要构建 dataString,因为您的数据将通过表单以邮寄方式提交。

重写 JS:

$(document).ready(function() {
var timer = null;
var dataString;
function submitForm(){
$.ajax({ type: "POST",
url: "index.php",
dataType: 'json',
success: function(result){
$('#special').html('<p>' + $('#resultval', result).html() + '</p>');}
});
return false;
}
$('#contact_form').on('keyup', function() {
clearTimeout(timer);
timer = setTimeout(submitForm, 2000);
});
});

在您的 index.php 中,您可以访问 $_POST 数组中的表单值,例如$_POST['contact_name'].

关于php - Ajax /JS : Grabbing multiple input fields without refresh or button click and php echoing the value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11570718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com