2015-10-09 4 views
1

Хорошо, поэтому я разрабатываю проект класса, и я создаю веб-сайт с базовыми функциями. Я новичок в php и javascript.Извлечение переменных PHP в Bootstrap Modal

Итак, вот в чем проблема. Я создал базу данных в phpMyAdmin под названием «itemdb». Я могу добавлять элементы к нему через html + php, а также удалять их. Теперь то, что я хочу сделать, это отредактировать данные в базе данных, и именно там я не могу найти исправление для него.

Это моя идея. 1. нажимает кнопку редактирования. 2. Открывает Bootstrap Modal. 3. Отображает информацию о позиции. 4. Хиты сохраняют изменения. Обновлена ​​база данных.

Моя проблема. Если я установил кнопку/тип ввода для «отправки», окруженного тегом формы, модальный сбой. Однако в текущем коде ниже нет тега формы, и кнопка устанавливается как «кнопка», и когда я нажимаю кнопку, она отображает только информацию одного элемента, даже если я нажимаю другую кнопку (те же данные).

Вот мой код.

для целей тестирования, я создал таблицу, отображающую «привет» в первой строке и кнопку во второй строке, и когда я нажимаю кнопку, она должна отображать информацию в модальном формате.

<div class = "row col-xs-10 col-sm-10 col-md-10 col-lg-10 "> 
<?php 
include 'connectDB.php'; 
$query = "SELECT * FROM `itemdb`;"; 
$result = mysqli_query($dbconnect, $query); 
if(mysqli_num_rows($result) > 0) 
{ 
    while($row = mysqli_fetch_assoc($result)) 
    {?> 
    <table> 
     <tr> 
      <td>Hellow</td> 
      <td> 
       <?php 
       echo " 
       <button type=\"button\" class=\"btn btn-primary\" data-toggle=\"modal\" data-target=\"#exampleModal\" 
       data-whatever=\"editDB[" . $row['itemID'] . "]\" onclick=\"window.Socation.href = 'adminItems3.php?value=" . $row['itemID'] . "'\";>Edit</button> 
       ";?> 
       <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"> 
        <div class="modal-dialog" role="document"> 
         <div class="modal-content"> 
          <div class="modal-header"> 
           <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
           <h4 class="modal-title" id="exampleModalLabel">New message</h4> 
          </div> 
          <div class="modal-body"> 
           <?php 
           if(!empty($row['itemID'])){ 
           $ID = $row['itemID']; 
           echo $ID; 

           $query1 = "SELECT * FROM `trademe`.`itemdb` WHERE `itemdb`.`itemID` = $ID;"; 
           $result1 = mysqli_query($dbconnect, $query1); 
           if(mysqli_num_rows($result1) > 0){ 
           $row1 = mysqli_fetch_assoc($result1); 

           echo " 
           <table class=\"table-striped\"> 
           <tr> 
           <td class = \"imgBoxCol\"> 
           <img class=\"imgBox img-rounded imgBox\"src=\"" . $row1['img_path'] . "\"></img> 
           </td> 
           <td> 
           <p >Ad Title: <input name=\"editadTitle\" value=\"" . $row1['adTitle'] . "\"/></p> 
           <p>Item Name:<input name=\"edititemName\" value=\" " . $row1['itemName'] . "\"/> </p> 
           <p>Condition:<textarea name=\"editcond\" type=\"text\" >" . $row1['cond'] . "</textarea></p> 
           <p>Description:<textarea name=\"editdescription\" type=\"text\" > " . $row1['description'] . " </textarea></p> 
           <p>Method:<input name=\"editmethod\" value=\"" . $row1['method'] . " \"/></p> 
           <p>Category:<input name=\"editcategory\" value=\"" . $row1['category'] . " \"/></p> 
           </td> 
           </tr> 

           </table> 
           "; 
           }}?> 
          </div> 
          <div class="modal-footer"> 
           <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
           <button type="button" class="btn btn-primary">Send message</button> 
          </div> 
         </div> 
        </div> 
       </div> 
      </td> 
     </tr> 
    </table> 
    <?php//opening php// ending html code. 
    } 
} 
?> 
</div> 

сценарий

$('#exampleModal').on('show.bs.modal', function (event) { 
    var button = $(event.relatedTarget) // Button that triggered the modal 
    var Eid = button.data('whatever') // Extract info from data-* attributes 
    // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). 
    // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. 
    var modal = $(this) 
    modal.find('.modal-title').text('New message to ' + Eid) 
    modal.find('.modal-body input').val(Eid) 
    // document.location="adminItems3.php?idSelected=" + Eid 
}) 

Я пытался исправить это в течение нескольких дней. Если у вас, ребята, есть идеи о том, чтобы каким-то образом передать хотя бы идентификатор элемента, чтобы мой модал смог его восстановить, тогда это было бы здорово!

Есть ли способ передать переменную, чтобы я мог ее получить через мой модальный без сбоев?

[Изображение кнопки 3 при нажатии] [2]

отображает информацию первого Buton Еще раз спасибо !!

enter image description here

ответ

1

Я дал самый простой способ, чтобы открыть модальный диалог начальной загрузки. Это поможет. Работайте спокойно. Держите терпение. Следуйте за кодом, как есть. Это поможет вам.

<div class = "row col-xs-10 col-sm-10 col-md-10 col-lg-10 "> 
    <?php 
    include 'connectDB.php'; 
    $query = "SELECT * FROM `itemdb`;"; 
    $result = mysqli_query($dbconnect, $query); 
    if(mysqli_num_rows($result) > 0) 
    { 
     while($row = mysqli_fetch_assoc($result)) 
     {?> 
     <table> 
      <tr> 
       <td>Hellow</td> 
       <td> 
        <a class="ItemID" href="#exampleModal" data-toggle="modal" data-whatever="<?echo $row['itemID'];?>"> 
         <input type='button' class='btn btn-primary' value="Edit"> 
        </a> 
       </td> 
      </tr> 
     </table> 
     <?php//opening php// ending html code. 
     } 
    } 
    ?> 
</div> 

В вашем сноске, Поместите этот код

<div id="exampleModal" class="modal fade" aria-hidden="true" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 

     </div> 
    </div> 
</div> 

В скрипте

<script> 
    $('.ItemID').click(function(){ 
     var ItemID=$(this).attr('data-whatever'); 
     $.ajax({url:"NewPage.php?ItemID="+ItemID,cache:false,success:function(result){ 
      $(".modal-content").html(result); 
     }}); 
    }); 
</script> 

NewPage.php
([Примечание: Помните, что это имя страницы также используется в sc ript tag. Итак, если вы измените это имя страницы. Вы должны изменить одно и то же имя страницы в теге скрипта, который я дал])

<? 
include 'connectDB.php'; 
?> 
<div class="modal-header"> 
    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
    <h4 class="modal-title" id="exampleModalLabel">New message</h4> 
</div> 
<div class="modal-body"> 
    <?php 
    if(!empty($_GET['ItemID'])) 
    { 
     $ID = $_GET['ItemID']; 
     echo $ID; 

     $query1 = "SELECT * FROM `trademe`.`itemdb` WHERE `itemdb`.`itemID` = $ID;"; 
     $result1 = mysqli_query($dbconnect, $query1); 
     if(mysqli_num_rows($result1) > 0) 
     { 
      $row1 = mysqli_fetch_assoc($result1); 
      echo " 
      <table class=\"table-striped\"> 
      <tr> 
      <td class = \"imgBoxCol\"> 
      <img class=\"imgBox img-rounded imgBox\"src=\"" . $row1['img_path'] . "\"></img> 
      </td> 
      <td> 
      <p >Ad Title: <input name=\"editadTitle\" value=\"" . $row1['adTitle'] . "\"/></p> 
      <p>Item Name:<input name=\"edititemName\" value=\" " . $row1['itemName'] . "\"/> </p> 
      <p>Condition:<textarea name=\"editcond\" type=\"text\" >" . $row1['cond'] . "</textarea></p> 
      <p>Description:<textarea name=\"editdescription\" type=\"text\" > " . $row1['description'] . " </textarea></p> 
      <p>Method:<input name=\"editmethod\" value=\"" . $row1['method'] . " \"/></p> 
      <p>Category:<input name=\"editcategory\" value=\"" . $row1['category'] . " \"/></p> 
      </td> 
      </tr> 

      </table> 
      "; 
     } 
    }?> 
</div> 
<div class="modal-footer"> 
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
    <button type="button" class="btn btn-primary">Send message</button> 
</div> 
+0

Большое спасибо за ваш ответ sir, я буду работать над ним, я вернусь домой. Обязательно вернусь к вам !: D – topacoBoy

+0

Да, конечно @ Chocobie95 Но, работайте спокойно. ОК. В противном случае что-то пропустило .. вы будете перепутаны с этим кодом. Итак, пошаговая работа. Все лучшее. Надеюсь, это поможет. Thanku –

+0

эй, сэр, я попытался использовать ваш код.Когда я нажимаю кнопку сейчас, только черный выцветший фон модальных всплывает, но не модальный корпус. Поэтому он ничего не отображает, а также, я не вижу никаких переменных, передаваемых в переменные через url.Есть ли что-нибудь, что я должен изменить? – topacoBoy

0

Все ваши модальности имеют тот же идентификатор «exampleModal», поэтому только первый один показан, когда модальный срабатывает.

Попробуйте сделать ID как

$myModalID = "exemplaModal_".$row['ID']; 

в обоих

data-target=\"#<?php echo $myModalID?>\" //I forget to let the hastag here, my bad 

И

class="modal fade" id="<?php echo $myModalID?>". 

PS: у вас есть ошибка,

onclick=\"window.Socation.href" 

не Сво Socation но Расположение

EDIT:

<div class = "row col-xs-10 col-sm-10 col-md-10 col-lg-10 "> 
<?php 
include 'connectDB.php'; 
$query = "SELECT * FROM `itemdb`;"; 
$result = mysqli_query($dbconnect, $query); 

if(mysqli_num_rows($result) > 0) 
{ 
while($row = mysqli_fetch_assoc($result)) 
{ 
// HERE you declare your modal ID 
$myModalID = "exemplaModal_".$row['ID']; 
?> 
<table> 
    <tr> 
     <td>Hellow</td> 
     <td> 
      <?php 
      ///!\ HERE : Dont forget to let the hashtag in data-taget : data-target="# <--- 
      echo " 
      <button type=\"button\" class=\"btn btn-primary\" data-toggle=\"modal\" data-target=\"#<?php echo $myModalID?>\" 
      data-whatever=\"editDB[" . $row['itemID'] . "]\" onclick=\"window.Socation.href = 'adminItems3.php?value=" . $row['itemID'] . "'\";>Edit</button> 
      "; 
      ?> 

      <!-- And Here juste add the normal echo $myModalID --> 
      <div class="modal fade" id="<?php echo $myModalID?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"> 
       <div class="modal-dialog" role="document"> 
        <div class="modal-content"> 
         <div class="modal-header"> 
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
          <h4 class="modal-title" id="exampleModalLabel">New message</h4> 
         </div> 
         <div class="modal-body"> 
          <?php 
          if(!empty($row['itemID'])){ 
          $ID = $row['itemID']; 
          echo $ID; 

          $query1 = "SELECT * FROM `trademe`.`itemdb` WHERE `itemdb`.`itemID` = $ID;"; 
          $result1 = mysqli_query($dbconnect, $query1); 
          if(mysqli_num_rows($result1) > 0){ 
          $row1 = mysqli_fetch_assoc($result1); 

          echo " 
          <table class=\"table-striped\"> 
          <tr> 
          <td class = \"imgBoxCol\"> 
          <img class=\"imgBox img-rounded imgBox\"src=\"" . $row1['img_path'] . "\"></img> 
          </td> 
          <td> 
          <p >Ad Title: <input name=\"editadTitle\" value=\"" . $row1['adTitle'] . "\"/></p> 
          <p>Item Name:<input name=\"edititemName\" value=\" " . $row1['itemName'] . "\"/> </p> 
          <p>Condition:<textarea name=\"editcond\" type=\"text\" >" . $row1['cond'] . "</textarea></p> 
          <p>Description:<textarea name=\"editdescription\" type=\"text\" > " . $row1['description'] . " </textarea></p> 
          <p>Method:<input name=\"editmethod\" value=\"" . $row1['method'] . " \"/></p> 
          <p>Category:<input name=\"editcategory\" value=\"" . $row1['category'] . " \"/></p> 
          </td> 
          </tr> 

          </table> 
          "; 
          }}?> 
         </div> 
         <div class="modal-footer"> 
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
          <button type="button" class="btn btn-primary">Send message</button> 
         </div> 
        </div> 
       </div> 
      </div> 
     </td> 
    </tr> 
</table> 
<?php//opening php// ending html code. 
} 
} 
+0

Эй, спасибо за ваш ответ. У меня есть несколько вопросов. '$ myModalID =" exampleModal _ ". $ row ['ID'];' мне нужно обмануть его в моем php? если да, я пробовал шаги, которые вы дали, но он все еще не работает. Теперь он даже не отображает Modal. Есть ли способ передать переменную через метод get и получить ее в моем php? Btw функция onclick использовалась для проверки некоторых других вещей. – topacoBoy

+0

Я редактировал код. важная часть заключается в том, чтобы не забывать hastag, когда вы объявляете модальный идентификатор в 'data-target'. Моя вина. – ThinkTank

+0

Я сделал то же, что и вы, но он пока не отображается. Я считаю, что это должно быть связано с javascript? как я должен отображать его в javascript? это как я отображаю его ... '