簡體   English   中英

Ajax函數無法獲得int valor onclick javascript

[英]Ajax function can't get int valor onclick javascript

我在ajax上有一個函數,它在onclick上檢索輸入按鈕上的int,這是javascript ajax代碼:

function checkBoxes(str){
var xmlhttp=browsers();

if(str=""){
    document.getElementById("txt").innerHTML="";
    return;
}

xmlhttp.onreadystatechange=function(){
    if(xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById("txt").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.open("GET","ajax.php?h"+str,true);
xmlhttp.send();
}

我使用php在屏幕上打印結果,並帶有一個onclick按鈕:

if(isset($_GET['k'])){
$con=oci_connect('jvillegas','1234','XE');
if(!$con){
    die("No s'ha pogut connectar: ".mysqli_error($con));
}
$k=intval($_GET['k']);
$sql3=oci_parse($con, "SELECT TARIFAS.ID, TARIFAS.ID_TIPO_ACTIVIDAD, TARIFAS.TIPO, TIPO_ACTIVIDAD.TEMPS_KM, TARIFAS.PRECIO 
                       FROM TARIFAS, TIPO_ACTIVIDAD         
                       WHERE TARIFAS.ID_TIPO_ACTIVIDAD=TIPO_ACTIVIDAD.ID 
                       AND TARIFAS.ID_TIPO_ACTIVIDAD=$k");
oci_execute($sql3);
echo "<div class='divPrecios'>";
  echo "<table border='1'>";
    echo "<tr class='tabPreciosTitles'>";
      echo "<td>Tipus Tarifa</td>
            <td>Temps/Km</td>
            <td>Preu</td>
            <td><input type='button' class='carrito' value=''></td>";
    echo "</tr>";
    while (($row=oci_fetch_array($sql3,OCI_BOTH))!=false){
      echo "<tr>";
        echo "<td>".$row['TIPO']."</td>";
        echo "<td>".$row['TEMPS_KM']."</td>";
        echo "<td>".$row['PRECIO']."</td>";
        echo "<td>".$row['ID']."</td>";
        echo "<td><input type='button' name='checkbox[]' onclick=checkBoxes('".$row['ID']."') value='".$row['ID']."'/></td>";
      echo "</tr>";
    }
  echo "</table>";
echo "</div>";
}

我知道有錯誤:

input type='button' name='checkbox[]' onclick=checkBoxes('".$row['ID']."') value='".$row['ID']."';

我做測試,如果我傳遞一個int valor,它返回0 ...為什么?

所以表格結果如果正確的話:

if(isset($_GET['h'])){
$con=oci_connect('jvillegas','1234','XE');
if(!$con){
    die("No s'ha pogut connectar: ".mysqli_error($con));
}

echo "<table border=1>";
echo "<tr class='tabPreciosTitles'>";
  echo "<td>Nom Activitat</td>
        <td>Nom Tipus Activitat</td>
        <td>Tipus Tarifa</td>
        <td>Temps/km</td>
        <td>Preu</td>";
echo "</tr>";

$h=intval($_GET['h']);
$sql4=oci_parse($con, "SELECT ACTIVIDAD.NOM AS NOM_ACTIVIDAD, TIPO_ACTIVIDAD.NOM AS NOM_TACTIVIDAD, TARIFAS.TIPO, TIPO_ACTIVIDAD.TEMPS_KM, TARIFAS.PRECIO
                       FROM TARIFAS, ACTIVIDAD, TIPO_ACTIVIDAD
                       WHERE TARIFAS.ID=$h
                       AND TARIFAS.ID_TIPO_ACTIVIDAD = TIPO_ACTIVIDAD.ID
                       AND TIPO_ACTIVIDAD.ID_ACTIVIDAD = ACTIVIDAD.ID");
oci_execute($sql4);

$array=array(
  0=>array(),
  1=>array(),
  2=>array(),
  3=>array(),
  4=>array()
);

while (($row=oci_fetch_array($sql4,OCI_BOTH))!=false){
    array_push($array[0],$row['NOM_ACTIVIDAD']);
    array_push($array[1],$row['NOM_TACTIVIDAD']);
    array_push($array[2],$row['TIPO']);
    array_push($array[3],$row['TEMPS_KM']);
    array_push($array[4],$row['PRECIO']);
}

for ($x=0;$x<count($array[4]);$x++){
  echo "<tr>";
  echo "  <td>".$array[0][$x]."</td>";
  echo "  <td>".$array[1][$x]."</td>";
  echo "  <td>".$array[2][$x]."</td>";
  echo "  <td>".$array[3][$x]."</td>";
  echo "  <td>".$array[4][$x]."</td>";
  echo "  <td><input type='submit' class='carritoElim' value=''></td>";
  echo "</tr>";
}
echo "</table>";
}

為了顯示這些結果,我使用div:

<div id='txtHint'></div>
<div id='txtIhnt'></div>
<div id='txt'></div>

如果我在最后一個表的查詢上放一個int,將$ h更改為13,它可以工作,或者如果我更改了> xmlhttp.open("GET","ajax.php?h=13",true);上的ajax函數xmlhttp.open("GET","ajax.php?h=13",true); 它也有效。

我認為你的問題來自這條線

if(str=""){

而是在進行比較時,為str變量分配一個空字符串。 因此,從函數的角度來看, str的值將是"" 你想把它改成

if(str==""){

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM