ajax 相关问题

AJAX(异步JavaScript和XML)是一种通过客户端和服务器之间的异步数据交换来创建无缝交互式网站的技术。 AJAX有助于与服务器进行通信或部分页面更新,而无需传统的页面刷新。

在ajax上发送多个输入

我有一个表格,可以在其中获取记录集合,出现后显示如下: 我有一个表格,可以在其中获取记录集合,出现后显示如下: <input name="position" id="nameText" step-id="3" type="number" value="1" class="form-control stepinput"> <input name="position" id="nameText" step-id="4" type="number" value="2" class="form-control stepinput"> <input name="position" id="nameText" step-id="5" type="number" value="3" class="form-control stepinput"> 该值是为了稍后对记录进行排序,“step_id”属性是通过ajax发送来更新特定记录,但我的数据看起来不太好。将我的数据发送到控制器以便稍后更新记录的最佳方式是什么? 我当前的代码: $('button.update-positions').on('click', function(event){ event.preventDefault(); var form = $(this).closest(".steps-form"); var map = {}; $(".stepinput").each(function() { map[$(this).attr("step-id")] = $(this).val() }); }) 很难读,但如果我理解正确的话: 有 3 个数字输入 希望在数据库中更新输入的值 使用 “step-id” 来识别要更新哪一个 如果是这样,则将step-id =“”替换为data-stepid =“”,其代码为: $("button.update-positions").on("click",function(event) { event.preventDefault(); var form = $(this).closest(".steps-form"); var map = {}; $(".stepinput").each(function(index,value) { map[$(this).data("stepid")] = value.value; }); console.log(map); // Your map object }); 你不能有 2 个具有相同 ID 的元素,如果你想像这样传递信息,你应该使用数据属性。

回答 1 投票 0

单页应用程序和<form>元素

在单页应用程序的上下文中使用 元素而不是 元素还有什么好处吗? 元素的用途使得... 在单页面应用程序的上下文中使用 <form> 元素而不是 <div> 元素还有什么好处吗?如果“表单”提交不是通过 ajax 调用进行的,那么 <form> 元素的目的对我来说是有意义的(我说的是提交表单的更传统方式,带有“提交”类型的输入/按钮" 以及描述要调用的 url 的表单元素的 action 属性),但除此之外我看不到它的实用性(也许对于搜索引擎?)。 从语义上讲,使用 <form> 比 <div> 更清晰。 如果您仍然希望您的表单在没有 JavaScript 的情况下工作,您最好选择<form>(因为您使用了单词应用程序,但这可能不会被考虑)。 更重要的是,如果您确实关心可访问性,那么使用<div>会非常痛苦。 我认为答案是,不,如果您不打算“提交”表格,则不需要 可访问性,我对此一无所知。 不,你不知道。就 SPA 而言,表单标签基本上已经过时了。然而,它对于可访问性问题可能是有益的。 作为替代方案,您可以指定 roll="form"。 <div role="form" Mozilla 对表单标签使用的看法。 W3School 无障碍表格介绍 网络开发

回答 3 投票 0

如果表单为空而不检查 Laravel 中表中的数据,Modal 将显示成功消息

问题是,无论表单为空,模式都会显示成功消息。我希望仅在数据库中输入数据时才收到成功消息,否则显示错误消息。这是我的刀片页面。

回答 1 投票 0

保护 AJAX 使用的 API

我有一个 REST JSON API(内置于 .NET),需要由以下客户端使用(通过 HTTPS): SPA 网站 (AJAX) 移动应用 一切(API、SPA 网站、移动应用程序)都在内部......

回答 1 投票 0

CSS ajax 搜索框样式

我相信我的网站(http://www.imbued.co.uk/)上的ajax搜索结果的样式下拉式有一个缩进,因为它们作为无样式列表弹出。如何删除这个缩进?

回答 2 投票 0

测量用户访问网站期间花费的时间

我正在尝试使用 PHP、Javascript 和 MAMP 在本地构建一个网站。 我正在寻找的是在网站的每个页面上放置一个计时器,该计时器会计算用户在

回答 3 投票 0

Laravel 从 sainttum auth 启动网络会话

我正在开发一个使用 Laravel 作为 API 后端的移动应用程序,但我需要一些可以从应用程序直接访问的 Web 身份验证页面,因此我实现了以下中间件来检查身份验证...

回答 1 投票 0

递归ajax调用时出现内存不足问题

在 ASP.NET Core MVC 项目中,我遇到的问题是,通过递归 Ajax 调用,内存在大约 5 分钟后就已满,并且浏览器崩溃并显示消息“内存不足”。与...

回答 1 投票 0

使用 JavaScript 触发 Elementor 弹出窗口

我是新来的,没有很多编码经验, 我正在使用 WordPress 中的图像地图专业插件创建交互式“建筑”图像地图,目标是让形状触发元素...

回答 1 投票 0

Django中无法正确接收来自Ajax的数据

我想从 jquery/Ajax 请求接收 Django 视图中的数组数据,但由于某种原因我无法正确执行此操作。 这是一段js代码: var arr = [1, 2]; $.ajax({ 类型:'POS...

回答 3 投票 0

如何检查源服务器是否可用并能够使用 JavaScript 完成 Ajax 请求

我想知道使用 JavaScript 检查源服务器是否可访问并可用于处理 Ajax 请求的最简单方法是什么?提供更多背景信息:有相关页面

回答 1 投票 0

如何通过 JavaScript 使用来自另一个域的服务器响应代码

首先,我想指出,我知道 JavaScript 的跨域问题。 我不会认为这是可能的,除非我确实在控制台中看到了 404/200 响应代码。

回答 1 投票 0

如何在 MVC 中使用 ajax 使用新从服务器获取的数据重新初始化数据表

所以这里我有管理员菜单列表,在它们下面有上传新闻。单击此特定菜单时,我将调用部分视图,如下所示。 $("#body_data").load("/Admin/GetDailyNews", 函数...

回答 8 投票 0

将 2 个下拉列表和文本字段的值一起添加到 yii 中的另一个文本字段中显示结果

我有两个下拉列表和一个文本字段。我想将它们的值加在一起并使用 Yii 在另一个文本字段中显示结果。 在 _form 中我有这个。 我有两个下拉列表和一个文本字段。我想将它们的值加在一起并使用 Yii 在另一个文本字段中显示结果。 在 _form 中我有这个。 <tr> <td><?php echo $form->labelEx($model,'typeofpaper'); ?></td> <td><?php $data = CHtml::listData(PaperType::model()->findAll(),'id','title'); if(isset($_REQUEST['id'])) { $sel = $_REQUEST['id']; } else { $sel =''; } echo $form->dropDownList($model, 'typeofpaper', $data, array('prompt'=>'Type of Paper','options'=>array($sel=>array('selected'=>true)))); ?> <?php echo $form->error($model,'typeofpaper'); ?></td> </tr> <tr> <td><?php echo $form->labelEx($model,'deadline'); ?></td> <td><?php echo $form->dropDownList($model,'deadline', array('3hrs'=> '3 hrs', '6hrs'=>'6 hrs', '12hrs'=>'12 hrs', '24hrs'=>'1 day', '48hrs'=>'2 days', '72hrs'=>'3 days', '96hrs'=>'4 days', '120hrs'=>'5 days', '144hrs'=>'6 days', '168hrs'=>'7 days', '172hrs'=>'8 days', '196hrs'=>'9 days', '220hrs'=>'10 days', '244hrs'=>'11 days', '268hrs'=>'12 days', '292hrs'=>'13 days', '316hrs'=>'14 days', '340hrs'=>'15 days'),array('empty' => 'Select Urgency Level')); ?> <?php echo $form->error($model,'deadline'); ?> </td> </tr> <tr> <td><?php echo $form->labelEx($model,'nopages'); ?></td> <td><?php echo $form->textField($model,'nopages'); ?> <?php echo $form->error($model,'nopages'); ?></td> </tr> 尝试并遵循这些指南 根据 yiipublic string dropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array ( )) 的下拉菜单。 因为 $data 并假设 $deadlineData = array('3hrs'=>'3 hrs','6hrs'=>'6 hrs'...) 是数组并表示列表选项(value=>display),你可以使用 array_merge($data,$deadlineData) 组合两个数组,并使用 foreach 循环并获得组合结果。然后您可以继续将结果输出到文本字段中

回答 1 投票 0

如何用c#在不刷新页面的情况下根据所选选项显示价格

到目前为止我还没有使用过Ajax,我想在选择所需选项后显示价格而不刷新页面。 到目前为止,我还没有使用过 Ajax,我想在选择所需选项后显示价格,而不刷新页面。 <div class="form-group"> <label class="control-label">choice your Option</label> <select> @foreach (var item in Materials) { <option value="@item.Id"> @item.MaterialName @item.Panel </option> } </select> <span class="main-price ">@item.Price</span> </div> 让我们看看我们可以为您的案例做些什么: 将 id 分配给您的 select 以保存您将发送给服务器的值,并为 span 分配以显示服务器的输出: <div class="form-group"> <label class="control-label">choice your Option</label> <select id="ddlMaterial"> @foreach (var item in Materials) { <option value="@item.Id"> @item.MaterialName @item.Panel </option> } </select> <span class="main-price" id="priceDisplay">@item.Price</span> </div> 现在我们定义将请求发送到服务器的 AJAX 调用。该请求将获取所选选项的当前 id,然后将其转换为 JSON 字符串,发送到服务器进行处理。 url 是将在此调用中调用的操作方法: $(document).ready(function () { $("#ddlMaterial").change( function (event) { var id = $(this).val(); var json = {id : id}; $.ajax({ type: 'POST', url: "@Url.Action("GetPrice", "Home")", dataType : "json", data: {"json": JSON.stringify(json)}, success: function(data) { if(data.status=="true") { $("#priceDisplay").text(data.price); } else { alert('Some error'); } }, error: function(data) { alert('Some error'); window.location.reload(); } }); }); }); 最后你的 Controller 操作方法将是: using System.Web.Script.Serialization; [HttpPost] public JsonResult GetPrice(string json) { var serializer = new JavaScriptSerializer(); dynamic jsondata = serializer.Deserialize(json, typeof(object)); //Get your variables here from AJAX call var id = Convert.ToInt32(jsondata["id"]); //Get the price based on your id from DB or API call var getMyPrice=GetPrice(id); return Json(new {status="true", price= getMyPrice}); }

回答 1 投票 0

如果西班牙语网站图像不存在,如何加载英语网站图像

我有一个多语言网站。使用html、javascript,如果西班牙语文件夹中不存在图像,则可能是ajax,它应该从英语文件夹中加载图像。 路径示例 英文网站:images/ho...

回答 1 投票 0

如何在blade模板中从Javascript ajax文件重定向Laravel路由

我尝试重定向到 Laravel 中的索引页面,并使用了 ajax。我将包含代码 控制台.log(响应); 如果(响应.成功){ console.log(“Berhasil menyimpan 数据 pembelian. ...

回答 1 投票 0

为什么它无法识别日期选择器上的任何选择?

我正在尝试用没有预订预约的时间填充选择下拉列表,现在我遇到了日期选择器的一些非常愚蠢的事情,因为我希望它被填充...

回答 1 投票 0

发回json字符串有echo问题

我使用json_encode通过ajax将数据从php发送回jquery。 我注意到 jquery 只允许我们在 php 中使用 ONE echo。 如果我使用 echo json_encode($array);.... 然后再使用一个 ...

回答 3 投票 0

对控制器方法的意外 HTTP 请求导致动态生成的表单中出现 403 Forbidden

我在dashboard_view.php中有一个锚标记,它的设计就像一个重定向到view_cart控制器方法的按钮。 我在 dashboard_view.php 中有一个锚标记,它的设计就像一个重定向到 view_cart 控制器方法的按钮。 <a class="show_cart" href="<?=base_url('ProductsController/view_cart');?>">Cart (0)</a> 我有一个控制器方法来加载包含表单的页面。 public function view_cart() { $this->load->view('customer/cart_view'); } 流程如下: 我获取产品并将其单独放入表格中。 cart_view.php $(document).ready(function() { getCartProducts(); processProductQuantityForm(); function getCartProducts() { $.ajax({ url: "<?=base_url('ProductsController/getCartProducts');?>", type: 'GET', dataType: 'json', success: function(response) { $.each(response.cart_items, function(index, cart) { let cartItem = `<form action="" class="product" method="post"> <input type="hidden" name="<?=$this->security->get_csrf_token_name();?>" value="<?=$this->security->get_csrf_hash();?>"> <input type="hidden" name="cart_id" value="${cart.cart_id}"> <input type="text" class="csrf" value="123"> <ul> <li> <img src="<?=base_url('${cart.image_url}');?>" alt=""> <h3>${cart.name}</h3> <span>₱${cart.price}</span> <ul> <li> <label>Quantity</label> <input type="text" min-value="1" id="quantity" data-cart_id="${cart.cart_id}" value="${cart.quantity}" name="quantity"> <!--NOTE: This is the button that triggers the submit--> <ul> <li><button type="button" class="increase_quantity" data-quantity-ctrl="1"></button></li> <li><button type="button" class="decrease_quantity" data-quantity-ctrl="0"></button></li> </ul> </li> <li> <label>Total Amount</label> <span class="total_amount" data-price="${cart.price}" id="total_amount">₱${cart.total_amount}</span> </li> <li> <button type="button" class="remove_item"></button> </li> </ul> <div> <p>Are you sure you want to remove this item?</p> <button type="button" class="cancel_remove">Cancel</button> <button type="button" class="remove">Remove</button> </div> </li> </ul> </form>`; $('.cart_items_form').append(cartItem); }); updateProductQuantity(); }, error: function(jqXHR, textStatus, errorThrown) { console.log('AJAX Error:', textStatus, errorThrown); } }); } }); 用户提交表单来更新数量,触发更新购物车中产品数量的 AJAX 调用。 function updateProductQuantity() { $('.product').on('click', '.increase_quantity, .decrease_quantity', function() { let quantityInput = $(this).closest('form').find('#quantity'); let quantity = quantityInput.attr('value'); let newValue; if ($(this).hasClass('increase_quantity')) { quantityInput.attr('value', function(index, oldValue){ newValue = parseInt(oldValue, 10) + 1; return newValue; }); } else if (quantity > 1) { quantityInput.attr('value', function(index, oldValue) { newValue = parseInt(oldValue, 10) - 1; return newValue; }); } /*Submit the form when these buttons are clicked, containing the new quantity, csrf token and cart id*/ $(this).closest('.product').submit(); updateTotal(quantityInput); }); 成功 AJAX 响应后,我会更新提交表单中的 CSRF 令牌。 function processProductQuantityForm() { $('.cart_items_form').on('submit', '.product', function(e) { e.preventDefault(); let formData = new FormData(this); $.ajax({ url: "<?=base_url('ProductsController/processProductQuantityForm');?>", type: 'POST', dataType: 'json', data: formData, contentType: false, processData: false, success: function(response) { console.log(response); $(".csrf").val(response.result.newCsrfToken); $("input[name='<?= $this->security->get_csrf_token_name() ?>']").val(response.result.newCsrfToken); }, error: function(jqXHR, textStatus, errorThrown) { console.log('AJAX error:', textStatus, errorThrown); } }); }) } 问题是: 紧接着,会自动触发对 http://localhost/thrifted-threads/ProductsController/view_cart 的意外 HTTP POST 请求,从而导致 403 Forbidden 错误。我无法确定为什么会发生此请求。但它在前端运行成功,并且成功更新数据库中的数量。 我认为你需要 e.stopImmediatePropogation() 而不是 e.preventDefault() 来防止事件冒泡到表单元素。 https://api.jquery.com/on/

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.