3 回答
TA贡献1851条经验 获得超5个赞
这是我认为可以解决您的主要问题的一些代码,即将动态值传递给函数。
基本上,方法是:
id为每个按钮添加唯一的属性
添加一个点击处理程序
根据单击的按钮定义不同的函数参数
然后,您将能够通过有条件地处理传递给服务器端代码的值来处理不同的场景。
jsFiddle 链接
注意:jsFiddle 用于mockjax在从服务器检索结果时模拟延迟,并将多个值记录到控制台,以便您可以更好地了解代码中发生的情况,但您可以在实现时删除所有这些代码
HTML
<!-- added unique id's to your buttons -->
<div class="container">
<button id="button1" type="button" class="btn btn-success">Test1</button>
<button id="button2" type="button" class="btn btn-success">Test2</button>
<div id="result"></div>
</div>
JS
// added on click handler
$(document).on("click", "#button1, #button2", function() {
// get reference to the instance of the button
var instance = $(this).attr("id");
// sanity check
console.log("the instance is: " + instance);
// create an object to store function parameters
var parameters = {};
// assign different values based on the instance
if (instance === "button1") {
parameters.php_file = "my_file_1.php";
parameters.tag = "tag 1";
parameters.phptag = "php tag 1";
parameters.is_toggled = true;
parameters.is_on = false;
} else if (instance === "button2") {
parameters.php_file = "my_file_2.php";
parameters.tag = "tag 2";
parameters.phptag = "php tag 2";
parameters.is_toggled = false;
parameters.is_on = true;
}
// call the function
my_function(parameters);
});
const my_function = (parameters) => {
var php_file = parameters.php_file;
$.ajax({
url: `/path/to/your/file/${php_file}`,
data: parameters, // send the parameters to your server side file
type: "POST",
success: function(response) {
// handle the response here
$("#result").text(response);
}
});
}
CSS
.btn-success {
background-color: #2E64FE;
border: none;
color: white;
padding: 10px 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 20px;
}
.btn-success:hover {
background-color: blue;
}
.btn-success:focus {
background-color: #2E64FE;
}
.btn-success:active:focus {
background-color: blue;
}
.Header2 {
padding: 50px;
font-size: 50px;
text-align: center;
color: white;
background-image: linear-gradient(#0033cc, #58FAF4);
border: solid;
}
.space {
padding: 25px;
}
.container {
padding-left: 80px;
}
#instance {
font-size: 18px;
color: black;
font-weight: bold;
margin-top: 20px;
font-family: arial;
}
#result {
font-size: 38px;
color: deeppink;
font-weight: bold;
margin-top: 20px;
font-family: arial;
}
TA贡献1777条经验 获得超10个赞
只是我的想法。您将如何检测被单击的按钮并抛出一个条件,如果单击了 button2,则执行 ajax 调用以及对 button1 执行相同的操作。
<button type="button" class="btn btn-success" id="button1" onclick="test(this.id)">Test</button>
<button type="button" class="btn btn-success" id="button2" onclick="test(this.id)">Test2</button>
<script>
function test(button_id) {
if(button_id == "button1"){
// do your ajax here
}else if(button_id == "button2"){
// do your ajax here
}
}
</script>
TA贡献1802条经验 获得超5个赞
最简单的方法是在onClick事件中传递数据。
例子
像这样传递 urls 文件名和数据字符串。
<button id="test" name="test" onClick="Test('test1', 'test_string_1');">Click Me </button>
<button id="test" name="test" onClick="Test('test2', 'test_string_2');">Click Me </button>
然后如果你的Test函数像这样使用它们。
function Test (filename, data){
document.getElementById("result").innerHTML = data;
$.ajax({
type: "POST",
url: filename + ".php",
data: {
phptag_test: data
}
});
}
这只是一个伪示例,您需要为所需的功能编写自己的版本。
- 3 回答
- 0 关注
- 174 浏览
添加回答
举报