2016-09-14 6 views
1

Ich bin ein neuer yii develeper. Ich möchte meine Datenbank auflisten und dann eine Schaltfläche neben alle meine Elemente setzen und dann, wenn Clinet auf Schaltfläche klicken, zeigt der Computer mir alle Details. Hier ist meine Ansicht Datei:Javascript in yii2 reagiert nicht

<h1> پایگاه داده ما </h1> 
<script> 
    function showUser(Id) { 
     var xmlhttp; 
     if (Id == 0) { 
      document.getElementById("showmore").innerHTML = "Test"; 
      return; 
     } 
     if (window.XMLHttpRequest) 
     { 
      // IE7+, Firefox, Chrome, Opera, Safari کد لازم براي مرورگر هاي جديد 
      document.getElementById("showmore").innerHTML = "Test2"; 
      xmlhttp = new XMLHttpRequest(); 

     } 
     else 
     { 
      // IE6, IE5   کد براي مرورگرهاي قديمي 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     xmlhttp.onreadystatechange = function () 
     { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
      { 

       document.getElementById("showmore").innerHTML = xmlhttp.responseText; 
      } 
     } 

     xmlhttp.open("GET", "localhost/datils.php?q=" + Id, true); 
     xmlhttp.send (); 
    } 
</script> 
<style> 
    span 
    { 
     color: white; 
    } 

</style> 
<?php 
use yii\widgets\LinkPager; 
echo '<br>'; 
foreach($show as $k =>$v) 
{ 

$Id= $v['id']; 
//$Id=0; 
    echo $Id."."; 
    echo $v ['countryName']; 
    echo '<ul>'; 

    echo '<li> پایتخت :'; 
    echo $v ['capital']; 
    echo '</li>'; 

    echo '<li>'.'جمعیت :'; 
    echo '<span >i</span>'.(string)$v['population']; 

    echo '</li>'; 

    echo '</ul>'; 
    echo "<button value=$Id , onclick=showUser(this.value)>More</button>"; 
    echo "<div id=showmore> </div>" ; 
    echo '<hr>'; 
} 
echo LinkPager::widget([ 
    'pagination'=>$page 
]); 
?> 

Und hier ist meine datils.php Datei:

<?php 


    $q=$_GET["q"];  


    // این دستور مقدار پارامتر ارسالی از دستور ای جکس را دریافت می کند 

    $con = mysqli_connect("localhost", "root" , '' ,'mydatabase1');    // ایج اد ارتباط با پایگاه داده مورد نظر 



    if ($con->connect_error) 
    { 
     die("Connection failed: " . $con->connect_error); 
    } 


    $sql="SELECT * FROM countries WHERE id = '".$q."'";    // q دریافت اطلاعات از جدول مورد نظر بر مبنای پارامتر 


    $result = mysqli_query($con,$sql);   //   result  ریختن نتیجه عملیات انتخاب اطلاعات از پایگاه داده در متغیر 


    echo "<table border='1'> 
     <tr> 
       <th>countryName</th> 
       <th>currencyCode</th> 
       <th>population</th> 
     </tr>"; 

    while($row = mysqli_fetch_array($result))   // ساخت جدول در خروجی با نتیجه دریافتی از پایگاه داده 
      { 
        echo "<tr>"; 
         echo "<td>" . $row['countryName'] . "</td>"; 
         echo "<td>" . $row['currencyCode'] . "</td>"; 
         echo "<td>" . $row['population'] . "</td>"; 
        echo "</tr>"; 
      } 
     echo "</table>"; 

     mysqli_close($con); /* //  قطع ارتباط با پایگاه داده*/ 
?> 

Mein Problem ist, das nicht funktioniert! Die Linie

document.getElementById("showmore").innerHTML = "Test2"; 

funktioniert gut und das bedeutet meine Funktion funktioniert, aber es reagiert nicht.

nse aus details.php. Bitte führen Sie mich!

Antwort

0

Nur wenige Korrekturen müssen in Ihrer Ansicht Datei sein:

1. Statt

echo "<button value=$Id , onclick=showUser(this.value)>More</button>"; 

Verwendung

echo "<button value='$Id' onclick='javascript:showUser(this.value)'>More</button>"; 

2. Statt

xmlhttp.send (); 

sollte es

sein
xmlhttp.send();