0

ajax 応答を取得するために POST データが必要なページがあります。POST データに依存する情報は問題なく表示されます。ただし、その後、ユーザーが表示されたデータの一部を更新したい場合は、別の ajax 呼び出しを実行してその場で更新したいと考えています。次に、最初のスクリプトが、ユーザーが情報の更新を要求したページから POST データを取得しないため、問題が発生します。

今、私はこれを持っていますが、明らかに問題を引き起こしています

$(document).ready(function(){

            var uid = <?php echo $_POST['user_id']; ?>;
            $.ajax({
                type: "POST",
                data : {user_id:uid},
                cache: false,
                url:"modules/user/showuserdata.php",                    
                success : function (data) {
                    $("#response").html(data);
                }
            })


        });

        $('#commit-changes').click(function(){

            $('#commit-user').submit();
            $.ajax({
                type: "POST",
                data: $("#commit-user").serialize(),
                cache: false,
                url:"modules/user/updateuser.php",
                success : function(data){
                    $("#response-update").html(data);
                }

            })
        });

クロムが出力するjavascriptエラーは

 $(document).ready(function(){

            var uid = <br />
Uncaught SyntaxError: Unexpected token <
<b>Notice</b>:  Undefined index: user_id in <b>C:\xampp\htdocs\inacesso\admin\edituser.php</b> on line <b>73</b><br />
;

読みやすくするために html を省略しましたが、必要に応じてお知らせください。

これを回避する方法についてのヒントはありますか? 私は SESSION 変数を使いたくありませんでした...

これについて私ができるすべての助けに感謝します。

編集

showuserdata.php の HTML レスポンス

$user = 新しいユーザー();

 $id = $_POST['user_id'];


 $rcs_user = $user->getUserByID($id);


 $rcs_roles = $user->getRoles();
 $role ='';
 foreach($rcs_roles as $roles)
 {
    if($roles->role_number == $rcs_user->permissao) 
        $role .= '<option value="'.$roles->role_number.'" selected="selected">'.$roles->role.'</option>';
    else
        $role.= '<option value="'.$roles->role_number.'">'.$roles->role.'</option>';
 }

 if($rcs_user->activo == 0)
 {
     $activo = '<input type="checkbox" name="activo" class="on_off_checkbox"  value="1"   />';
 }
 else
 {
     $activo = '<input type="checkbox" name="activo" class="on_off_checkbox" checked="checked"  value="1"   />';
 }


 $response = '';

 $response.='<form id="validation commit-user" action="" method="post"> 
                                <fieldset >
                                <input type="hidden" name="user_id" value="'.$_POST['user_id'].'"/>
                                <legend>Actualizar Dados Utilizador</legend>
                                      <div class="section ">
                                      <label>Nome<small>Insira o seu nome</small></label>   
                                      <div> 
                                      <input type="text" class="validate[required,custom[onlyLetterSp]] large" name="nome" id="f_required" value="'.utf8_encode($rcs_user->nome).'">
                                      </div>                                      
                                      </div>';
 $response.='<div class="section ">
                                      <label> Email<small>Insira o seu email</small></label>   
                                      <div> 
                                      <input type="text" class="validate[required,custom[email]] large" name="email" id="e_required" value="'.  utf8_encode($rcs_user->email).'">
                                      </div>
                                      </div>';

 $response.= '<div class="section">
                                    <label>Permissões<small>Seleccione o tipo de utilizador </small></label>   
                                    <div>
                                        <select class="medium" name="role">

                                                   '.$role.'                                                 

                                        </select>       
                                  </div>
                                  </div>                                      
                                 <div class="section">
                                        <label>Activo<small>Activar utilizador</small></label>   
                                         <div>
                                            '.$activo.'
                                            <span class="f_help">ON / OFF  </span> 
                                        </div>
                                  </div>

                                  <div class="section last">
                                  <div>
                                      <a href="" id="commit-changes" class="uibutton submit_form" name="submit">Submeter</a><a class="uibutton special"   onClick="ResetForm()" title="Limpar Formulário"   >Limpar Formulário</a>
                                 </div>
                                 </div>

                                </fieldset></form>';



   echo $response;
4

2 に答える 2

0

問題は、データがajax呼び出しを介してロードされることです。

jQueryの.liveまたは.onイベントを使用してこの問題を解決しました。

頑張ってくれてありがとう!

于 2012-07-13T16:13:42.037 に答える
0

次のことを試してください。

var params = [];

<?php if($_POST['user_id']): ?>
    params.user_id = <?php echo $_POST['user_id']; ?>
<?php endif; ?>

$.ajax({
    type: "POST",
    data : params,
    cache: false,
    url:"modules/user/showuserdata.php",                    
    success : function (data) {
        $("#response").html(data);
    }
});
于 2012-06-19T18:54:02.943 に答える