2017-05-17 9 views
0

1つのPHPファイルに属するオプションを選択する際に、私の目標は、このオプションの現在の行IDを別のPHPファイルに渡して、そこで使用できるようにすることです。AJAX PHP結果からAJAXを介して別のPHP関数にデータを渡すにはどうすればよいですか?

echo '<div id="folderContentTableContainer">'; 
echo '<table class="table table-searchable-asc">'; 
if (count($contents) > 0) { 
// Start of table 
foreach ($contents as $content) { 
    echo '<tr>'; 
    echo '<td>' . $content['title'] . '</td>'; 
    echo '<td>' . $content['id'] . '</td>'; 
    echo '<td><a id="cloneContent" class="fa fa-clone"></a></td>'; 
    echo '<td><a id="removeContent" class="fa fa-trash"></a></td>'; 
    echo '</tr>'; 
} 
} else { 
// return nothing 

を今、私はデータベースを照会するために別々のPHPファイルに$コンテンツ[「ID」]を使用することをお勧めします:

これは私がフェッチしようとしているファイルからです。 、まず

echo '<div id="folderUlContainer">'; 
echo '<ul id="folderContainerUl">'; 
foreach ($folders as $folder) { 
$children = $mfdb->select('password_folders', '*', array('AND' => array('parent_id' => $folder['id']), 'ORDER' => 'title ASC')); 
if (count($children) > 0) { 
    echo '<li id="' . $folder['id'] . '">' . $folder['title'] . '</li>'; 
    echo '<ul>'; 
    foreach ($children as $child) { 
     echo '<li id="' . $folder['id'] . '">' . $child['title'] . '</li>'; 
    } 
    echo '</ul>'; 
    echo '</li>'; 
} else { 
    echo '<li id="' . $folder['id'] . '">' . $folder['title'] . '</li>'; 
} 
} 
echo '</ul>'; 
echo '</div>'; 
+0

まず、あなたは無効である、あなたのHTML内の属性id' '複製しています。彼らはユニークである必要があります。要素をまとめてグループ化する場合は、クラスを使用できます。第二に、あなたが使用しているセレクタ '#folderContainerUl li'は、PHPの例で生成しているHTMLと関係がないようです...? –

+0

あなたはajax PHP関数で何でもできますので、PHP関数を書いてそこから呼び出すこともできますし、ちょうどajax PHP関数に追加することもできます –

+0

@RoryMcCrossan #folderContainerUlスニペットをインクルードしました質問のボトムで – Wessah

答えて

1

:ファイルの内容は、その後getPasswordsFolders.phpからのデータ内に配置する

$('#content').on('click', '#folderContainerUl li', function() { 
    var id = event.target.id; 
    $.ajax({ 
     url: '<?php echo ROOTDIR; ?>pages/ajax/getPasswordsFolderContent.php', 
     type: 'POST', 
     data: ({ 
      uuid: '<?php echo $_GET['uuid']; ?>', 
      folder: id 
     }), 
     success: function (content) { 
      $('#folders-content-container').html(content); 

     } 
    }) 
}); 

、この含む:

私は現在、このようなファイルの内容をフェッチしていRory McMcrossanはIDを複製しているので、代わりにクラスを使用しようとしています。

$('.cloneContent').click(function(){ 
    var id = $(this).parent().prev().text(); 

    $.ajax({ 
     url:'your-url?id='+id, 
     method:'get', 
     ... 
    }); 

    //OR 

    $.ajax({ 
     url:'your-url', 
     method:'post', 
     data:{id:id}, 
     ... 
    }); 
}); 

EDIT:

その後、あなたは次のようにAJAXリクエストを送信することができます

echo '<td><a class="fa fa-clone cloneContent" data="'.$content['id'].'"></a></td>'; 

作業を簡素化するためにあなたにアンカーaの属性としてIDを渡すことができます

これでIDを取得できます。

var id = $(this).attr('data'); 

の代わり:var id = $(this).parent().prev().text();

+0

私の場合は、代わりに '$ '' content ')を使用しなければなりませんでした。なぜなら、実際にはなぜそうは思わないのですか? – Wessah

+1

@ Wessahええ、あなたのHTML要素が将来ドキュメントに追加される場合は、このようにクリックリスナーを添付するか、[delegate](http://api.jquery.com/delegate/)を使用して、 – Mohammad

関連する問題