0
votes

changement de valeur php src dans un div caché

J'essaie d'obtenir le nom du fichier pdf / image pour l'afficher dans une table localement. Quand j'obtiens le nom du fichier, je veux qu'il soit dans une balise qui ensuite href à la div pop-out cachée à l'intérieur est . Le problème est que la valeur du src ne change pas et que tous les noms de fichiers sont identiques (il prend le prénom pour tous)

Voici mon code:

if(mysql_num_rows($search)>0){ ?>

<div class="container-table10">
    <div class="wrap-table100">
        <div class="table100">
            <table>
                <thead>
                    <tr class="table100-head">
                        <th class="column1">appeal date</th>
                        <th class="column2">course code</th>
                        <th class="column3">date of exam </th>
                        <th class="column4">reason</th>
                        <th class="column5">course title</th>
                        <th class="column6">AY</th>
                        <th class="column7">semester</th>
                        <th class="column8">student id</th>
                        <th class="column8">Lecturer
                            <br>Name</th>
                        <th class="column9">upload</th>
                        <th class="column9">Eligibility</th>
                    </tr>
                </thead>
                <tbody>

                    <?php
                                        while($row=mysql_fetch_assoc($search)){

                                                ?>
                        <div aria-hidden="true" role="dialog" tabindex="-1" id="login-forms" class="modal leread-modal fade in">
                            <div class="modal-dialog">

                                <div class="modal-header">
                                    <button aria-label="Close" data-dismiss="modal" class="close" type="button"><span aria-hidden="true">X</span></button>
                                </div>
                                <div class="modal-body" name="place">

                                    <embed src="stuUploads/<?php echo $row['upload'];?>" class="up" type="application/pdf" width="600px" height="500px" />
                                    <script>
                                        $(document).ready(function() {
                                            $('.up').attr('src', "stuUploads/<?php echo $row['upload'];?>");
                                        });
                                    </script>

                                </div>
                                <div class="modal-footer footer-box">
                                </div>
                            </div>

                        </div>

                        <tr>
                            <td class="column1">
                                <?php echo $row['appealm_date'];?>
                            </td>
                            <td class="column2">
                                <?php echo $row['course_code'];?>
                            </td>
                            <td class="column3">
                                <?php echo $row['date_of_exam'];?>
                            </td>
                            <td class="column4"><a class="login modal-form" data-target="#login-form" data-toggle="modal" href="#">show</a></td>
                            <td class="column5">
                                <?php echo $row['course_title'];?>
                            </td>
                            <td class="column6">
                                <?php echo $row['appealm_ay'];?>
                            </td>
                            <td class="column7">
                                <?php echo $row['appealm_sem'];?>
                            </td>
                            <td class="column8">
                                <?php echo $row['student_id'];?>
                            </td>
                            <td class="column8">
                                <?php echo $row['lecturer_name'];?>
                            </td>
                            <td class="column9">
                                <a class="login modal-form" id="aaa" data-toggle="modal" href="#login-forms">
                                    <?php echo $row['upload'];?>
                                </a>
                            </td>
                            <td class="column8">
                                <input type="checkbox" name="eli" id="">
                            </td>
                        </tr>
                        <div aria-hidden="false" role="dialog" tabindex="-1" id="login-form" class="modal leread-modal fade in">
                            <div class="modal-dialog">

                                <div id="login-content" class="modal-content">
                                    <div class="modal-header">
                                        <button aria-label="Close" data-dismiss="modal" class="close" type="button"><span aria-hidden="true">×</span></button>
                                        <h4 class="modal-title">Reason</h4>
                                    </div>
                                    <div class="modal-body">

                                        <p class="p">
                                            <?php echo $row['appealm_reason'];?>
                                        </p>
                                    </div>
                                    <div class="modal-footer footer-box">
                                    </div>
                                </div>
                            </div>
                        </div>

                        <?php   
                                        }
                                            ?>

                </tbody>
            </table>
        </div>
    </div>
</div>
<?php   
   }}
 }}
?>

J'ai utilisé jQuery pour changer la valeur de l'attribut src dans la balise , mais le résultat est le nom de famille du fichier (dernière ligne de la base de données)

Voici le code

 <script>
    $(document).ready(function(){                                                
      $('#up').attr('src',"stuUploads/<?php echo $row['upload'];?>");
    });
 </script>

Voici la boucle entière

while($row=mysql_fetch_assoc($search)){
    ?>
<div aria-hidden="true" role="dialog" tabindex="-1" id="login-forms" class="modal leread-modal fade in">
  <div class="modal-dialog">
    <div class="modal-header">
      <button aria-label="Close" data-dismiss="modal" class="close" type="button"><span aria-hidden="true">X</span>
        </button>
    </div>
    <div class="modal-body" name="place">
      <embed src="stuUploads/<?php echo $row['upload'];?>" id="up" type="application/pdf" width="600px" height="500px" />
    </div>
    <div class="modal-footer footer-box">
    </div>
  </div>
</div>

S'il y a une autre façon de faire apparaître le fichier dans la même page, veuillez le suggérer. J'apprécie toute aide.


0 commentaires

4 Réponses :


0
votes

utilisez class au lieu de id .Id est unique

 $(document).ready(function(){
    $('.up').attr('src',"stuUploads/<?php echo $row['upload'];?>");
 });

Et changez l'élément js respectif id code > à class

<embed src="stuUploads/<?php echo $row['upload'];?>" class="up" type="application/pdf" width="600px" height="500px" /> 


2 commentaires

modifiez-vous le src en tant qu'individu avec le php $ row respecté ou la même valeur pour tous les src incorporés?


$ row contient plus d'une valeur, je suis fatigué de changer la valeur src pour chaque ligne avec la $ row appropriée ['upload'].



0
votes

Utilisez l'attribut class au lieu de id. Un identifiant est censé être unique (cela signifie qu'il n'est utilisé qu'une seule fois).

Vous ne pouvez accéder à $ row [] qu'à l'intérieur de votre boucle while, puisque vous parcourez $ search qui est un tableau multidimensionnel.


8 commentaires

Est-il possible de voir toute la boucle while? @MaxedTyaertyaery


@MaxedTyaertyaery


Ajout de class = "up" et essayé avant id = "up" mais toujours pas de chance


Ah ic, vous dites en gros: changez le src de de l'élément qui a la classe "up" en: $ row ['upload'].


Au-dessus de while (), vous pouvez créer une nouvelle variable, appelons-la $ x. Donnez-lui une valeur de 1. $ x = 1; jQuery:


Oui, mais il répète sans cesse la même valeur pour tous.


Oh j'ai oublié, vous devez incrémenter $ x à la fin de la boucle. ($ x ++)


$ x = 1; while (row = mysql_fetch_assoc ($ search)) {// Code .... $ x ++; }



0
votes
  1. dans votre boucle, utilisez XXX

  2. Si vous utilisez bootstrap, ajoutez

$ ('# login-forms'). on ('shown.bs.modal', function (e) { var $ invoker = $ (e.relatedTarget); $ ("# up"). attr ("src", $ invoker.data ("url")); });


0 commentaires

0
votes

Gardez à l'esprit que $ row ['upload'] n'est qu'une valeur, qui change à chaque fois dans la boucle while . Lorsque vous avez changé up en classe à partir d'un identifiant, vous avez fait en sorte que votre script redéfinisse essentiellement le src pour chaque up déjà sur la page à chaque fois qu'il s'exécute. Une meilleure solution serait de définir un meilleur id , car vous avez uniquement l'intention de modifier un seul embed . Serait-il possible d'utiliser $ row ['upload'] comme identifiant?

<script>
      $(document).ready(function(){
             $('#'+<?php echo $row['upload'];?>).attr('src',"stuUploads/<?php echo $row['upload'];?>");
      });
</script>

Ensuite, vous pouvez changer votre script en:

 <embed src="stuUploads/<?php echo $row['upload'];?>" id="<?php echo $row['upload'];?>" type="application/pdf" width="600px" height="500px" /> 


2 commentaires

Pour référence, il n'est pas très clair que cela aurait un effet quelconque sur la page, car le php imprime $ row ['upload'] dans le src juste avant le script faisant la même chose.


Je l'ai essayé, je n'ai toujours pas fonctionné, merci pour votre aide.