javascript - Ajax函数无法获取int valor onclick javascript

标签 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,它会起作用,或者如果我更改 > xmlhttp.open("GET","ajax. php?h=13",true); 它也有效。

最佳答案

我认为你的问题来自这里

if(str=""){

而不是进行比较,您会为 str 变量分配一个空字符串。因此,从那时起,函数中 str 的值将是 ""。您想将其更改为

if(str==""){

关于javascript - Ajax函数无法获取int valor onclick javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22931232/

相关文章:

javascript - 限制用户在当前时间之后输入 HTML &lt;input type = "time">

javascript - 什么是最有效的 JavaScript 语法检查解决方案?

javascript - 如何使用 AJAX 上传图像?

javascript - canvas、drawImage不适用于远程图片

javascript - 如何修复 Node js 中的设置 header ?

php - PHP 中 $_SERVER super 全局的来源是什么?

php - Laravel - 在 Blade 中加载更多结果时如何避免 N+1 问题?

javascript - 从 zend 框架的应用程序目录中访问 javascript/css

jQuery 插件冲突 - 请帮忙

javascript - 如何修复发布 html 元素的错误并阻止它运行