Ajax 函数无法在点击 javascript 上获得 int valor

Ajax function can't get int valor onclick javascript

本文关键字:int valor javascript 函数 Ajax      更新时间:2023-09-26

我在ajax上有一个函数,可以在点击时检索输入按钮上的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 在屏幕上打印结果,并带有一个点击按钮:

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,更改 13 的$h,它就可以工作,或者如果我在> xmlhttp.open("GET","ajax.php?h=13",true);上更改 ajax 函数,它也可以工作。

我认为您的问题来自这里的这一行

if(str=""){

而不是进行比较,您将被分配一个空字符串到 str 变量。 因此,从函数中的该点开始,str的值将"" 。 您想将其更改为

if(str==""){