这是我第一次在这里发帖,但我似乎无法找到问题的答案。我已经使用堆栈多年了,但这是我无法找到答案的第一次。如果我应该采取不同的做法,请随时告诉我。
我根据目录中的文件名动态填充按钮。我需要使用jquery和ajax将单击的按钮名称发送到我的控制器。我使用以下代码执行此操作:
$currentDir = getcwd();
$files = scandir($currentDir);
$count = 0;
foreach ($files as $name) {
if(preg_match("/^sma\w*/", $name)){
$workingFiles = substr($name, strpos($name, "_") + 1);
$availableActions = explode(".", $workingFiles);
$class_action = $availableActions[0];
$buttonName = $class_action;
$count ++;
?>
<button id="<?php echo $class_action;?>" class="actionButtons"><? echo $buttonName; ?></button>
<script>
$(document).ready(function() {
$("#<?php echo $class_action;?>").click(function(){
var class_action = <?php echo $class_action;?>
$.ajax({ url: url + '?action=GetStatus&action=Execute',
type: 'POST',
data: JSON.stringify({action: "GetStatus", action: "Execute", actionItem: class_action}),
contentType: 'application/json; charset=utf-8',
success: function(output) {
if(output){
console.log(output);
}
else{
console.log("Nothing returned");
}
},
error: function() {
console.log("error in the execute call");
}
});
});
});
</script>
<?
}
}
使用如下控制器:
if(isset($_GET['action'])){
$action = $_GET["action"];
switch($action){
case "GetStatus":
_setContent();
break;
case "Execute":
if(isset($_POST['data'])){
$data = json_decode($_POST['data']);
echo $data;
}
break;
想法?任何反馈将不胜感激!
答案 0 :(得分:0)
为什么循环中有Unload Hive...
?
相反,您可以使用以下代码:
$(document).ready
&#13;
$(document).ready(function() {
$(".actionButtons").click(function() {
var class_action = $(this).attr('id')
$.ajax({
url: url + '?action=GetStatus&action=Execute',
type: 'POST',
data: JSON.stringify({
action: "GetStatus",
action: "Execute",
actionItem: class_action
}),
contentType: 'application/json; charset=utf-8',
success: function(output) {
if (output) {
console.log(output);
} else {
console.log("Nothing returned");
}
},
error: function() {
console.log("error in the execute call");
}
});
});
});
&#13;