如何从php jquery ajax获取PHP控制器中的$ _POST值

时间:2017-05-25 11:58:33

标签: javascript php jquery

这是我第一次在这里发帖,但我似乎无法找到问题的答案。我已经使用堆栈多年了,但这是我无法找到答案的第一次。如果我应该采取不同的做法,请随时告诉我。

我根据目录中的文件名动态填充按钮。我需要使用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;

想法?任何反馈将不胜感激!

1 个答案:

答案 0 :(得分:0)

为什么循环中有Unload Hive...

相反,您可以使用以下代码:

&#13;
&#13;
$(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;
&#13;
&#13;