我绝对是使用javascript和ajax的初学者,所以这就是我现在坚持的原因.我有一个while循环,其中有2个不同的按钮.就像我想象的一样,两者都起作用,除了一件小事…
product-id始终仅传递给第一个元素,或者如果我将其更改为最后一个元素则传递.
如何将正确的产品ID传递给脚本?
这是我的PHP文件:
<?php while ( $product = $browse->fetch( PDO::FETCH_ASSOC ) ) :
$postid = $product[ 'id' ];
$userid = 1; ?>
我的Javascript是:
function add()
var userid = document.getElementById("userid").value;
var productid = document.getElementById("productid").value;
var collection = document.getElementById("collection").value;
var wishlist = document.getElementById("wish").value;
if(userid && productid && collection && wishlist) {
$.ajax
type: 'post',
url: 'post_collection.php',
data: {
user_id:userid,
product_id:productid,
collection_id:collection,
wishlist_id:wishlist
success: function (response) {
$("#content_"+ productid).load(" #reload_" + productid);
return false;
我知道示例中的产品ID始终相同,但是如果循环中有10个或更多条目,如何将正确的ID传递给脚本?
解决方法:
您的问题是id是唯一的,并且只能分配给一个元素一次,如下所示:
This is legal
This is illegal - It is no longer unique
This is legal
This is legal
您可以使用$(this)来访问当前单击的类,如下所示:
$('.paragraph').click(function() {
$(this).html('See, totally legal.');
您的解决方案需要向按钮添加onclick()方法.然后,将得到parent()表格.然后,您可以从类中获取find()并从表单数据中获取val().
您的表单也正在提交操作.您需要有一个< button>类型的按钮,因此它不提交操作.这也必须是一个类,因为如果您要多次创建它们,它将不是唯一的.
这是一个可以重新添加AJAX请求的有效示例.
$(document).ready(function() {
$('.submit-btn').click(function() {
var elements = {
'userid': $(this).parent().find('.userid').val(),
'productid': $(this).parent().find('.productid').val(),
'collection': $(this).parent().find('.collection').val(),
'wish': $(this).parent().find('.wish').val()
console.log("User ID: " + elements.userid);
console.log("Product ID: " + elements.productid);
console.log("Collection: " + elements.collection);
console.log("Wish: " + elements.wish);
// TODO: Add your AJAX request using these elements
button {
background: #0084ff;
border: none;
border-radius: 5px;
padding: 8px 14px;
font-size: 15px;
color: #fff;
cursor: pointer;
Add to collection
Add to collection
您的AJAX数据如下所示:
data: {
user_id: elements.userid,
product_id: elements.productid,
collection_id: elements.collection,
wishlist_id: elements.wish
您的PHP代码可能如下所示:
<?php foreach($browse->fetchAll(PDO::FETCH_ASSOC) as $product):
$id = $product['id'];
$productDd = $product['product_id'];
$productCategory = $product['category']; // TODO: change to your column nanme
$productWishList = $product['wish']; ?>
Add to collection
标签:ajax,html,javascript,php,jquery
来源: https://codeday.me/bug/20191108/2008340.html
我绝对是使用javascript和ajax的初学者,所以这就是我现在坚持的原因.我有一个while循环,其中有2个不同的按钮.就像我想象的一样,两者都起作用,除了一件小事…product-id始终仅传递给第一个元素,或者如果我将其更改为最后一个元素则传递.如何将正确的产品ID传递给脚本?这是我的PHP文件:...
假设你正在参与一个后端业务系统的开发,为了方便在请求出错时排查问题,我们在编写代码的时候会在关键路径上打印日志。某个请求出错之后,我们希望能搜索出这个请求对应的所有日志,以此来查
找
问题的原因。而实际情况是,在日志文件
中
,不同请求的日志会交织在一起。如果没有东西来标识哪些日志属于同一个请求,我们就无法关联同一个请求的所有日志。
我们可以给每个请求分配一个唯一
ID
,并且保存在请求的上下文(Context)
中
。每次打印日志的时候,我们从请求上下文
中
取出请求
ID
,跟日志一块输出。这样,同一个请求的所有
好的,我理解了你的问题。你想要
动态
地
循环
创建
多个wangeditor编辑器。首先,你需要确保已经引入了WangEditor编辑器的相关文件。然后,你可以使用
JavaScript
的for
循环
来
动态
地
创建
多个编辑器。下面是一个示例代码:
//
获取
需要
创建
编辑器的父容器
const editorContainer = document.getElementBy
Id
('editor-container');
//
创建
五个编辑器
for (let i = 0; i < 5; i++) {
//
创建
一个新的div容器
const div = document.createElement('div');
div.
id
= `editor-${i}`;
editorContainer.appendChild(div);
//
创建
WangEditor编辑器
const editor = new window.wangEditor(`#editor-${i}`);
editor.create();
上面的代码通过for
循环
创建
了五个WangEditor编辑器,并将它们添加到了一个父容器
中
。每个编辑器都有一个唯一的
ID
,这样你就可以对它们进行区分和操作。同时,你也可以根据需要调整
循环
次数,
创建
更多或更少的编辑器。希望这个示例对你有所帮助!