Ajax函数无法获得int valor onclick javascript

时间:2014-04-08 08:11:57

标签: javascript php ajax

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

1 个答案:

答案 0 :(得分:2)

我认为你的问题来自这一行

if(str=""){

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

if(str==""){