简体   繁体   English

在由ajax调用的php页面中获取发布数据

[英]get post data in a php page called by ajax

I have called the page search.php from ajax: 我从ajax调用了页面search.php

function search(){


                  var title=$("#search").val();

                  if(title!=""){

                     $.ajax({
                        type:"post",
                        url:"search.php",
                        data:"title="+title+"&idTratta="+<?php echo $idTratta ?>,
                        success:function(data){
                            $("#result").html(data);
                            $("#search").val("");
                         }
                      });
                  }



             }

Now in search.php I get the result of a query in a html table and I created radio buttons in a form that when each form is submitted I get the value of the radio button's clicked and update a row in the db: 现在在search.php中,我在html表中获得了查询结果,并以一种表单的形式创建了单选按钮,当提交每个表单时,我都单击了单选按钮的值并在db中更新了一行:

$title = $_POST["title"];
$idTratta = $_POST["idTratta"];

$SimpleUsers = new SimpleUsers();
$users = $SimpleUsers -> searchUser($title, $idTratta);

foreach ($users as $user) :
    echo "<tr>
                    <td>" . $user["nome"] . "</td>
                    <td>" . $user["role"] . "</td>
                    <td class='right'><form action='' method='post'><label>
    <input type='radio' name=" . $user["nome"] . " id='c'  value='1' ";
    if ($user["role"] == 'configuratore')
        echo "checked='checked'  />C</label>";
    else
        echo "/>C</label>";
    echo "<label>
    <input type='radio' name=" . $user["nome"] . " id='va' value='2' ";
    if ($user["role"] == 'visualizzatore avanzato')
        echo "checked='checked'  />VA</label>";
    else
        echo "/>VA</label>";
    echo "<label>
    <input type='radio' name=" . $user["nome"] . " id='v' value='3' ";
    if ($user["role"] == 'visualizzatore')
        echo "checked='checked' />V </label>";
    else
        echo "/>V </label>";
    echo "<input type= 'submit' name='sub_" . $user["nome"] . "'value='Cambia'/></form></td>
                </tr>";

    $sub = 'sub_';

    if ($_POST[$sub . '' . $user["nome"]]) {

        $permission = $_POST[$user["nome"]];
        $SimpleUsers -> updateUserPermission($user["nome"], $idTratta, $permission);

    }
endforeach;

The problem is that in search.php I am unable to catch POST variables, how I can get it? 问题是在search.php中我无法捕获POST变量,如何获取它?

EDIT This is the piece of code which doesn't work: 编辑这是不起作用的代码:

if ($_POST[$sub . '' . $user["nome"]]) {

    $permission = $_POST[$user["nome"]];
    $SimpleUsers -> updateUserPermission($user["nome"], $idTratta, $permission);

}

The data shouldn't be parsed as text but instead as an js array like this: 数据不应解析为文本,而应解析为如下的js数组:

data: {title: title, idTratta : <?php echo $idTratta ?>}, 

EDIT: 编辑:

A example for sending the form data would be: 发送表单数据的示例为:

var formData = JSON.stringify($("#myForm").serializeArray());
formData['idTratta'] = <?php echo $idTratta ?>;
$.ajax({
     type:"post",
     url:"search.php",
     data:formData,
     success:function(data){
       $("#result").html(data);
       $("#search").val("");
    }
});

And than using json_decode in your php form to turn it into a PHP array again. 并且比在您的php表单中使用json_decode再次将其转换为PHP数组。 Its kind of dirty but it should work 有点脏但是应该可以用

Try this method 试试这个方法

$.post("`search.php`", { title : title , idTratta : '<?php echo $idTratta ?>'}, 
function (data) {
    $("`#result`").html(data);
    $("`#search`").val("");
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM