Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL jQuery/AJAX问题_Php_Javascript_Jquery_Mysql_Ajax - Fatal编程技术网

PHP MySQL jQuery/AJAX问题

PHP MySQL jQuery/AJAX问题,php,javascript,jquery,mysql,ajax,Php,Javascript,Jquery,Mysql,Ajax,我对jQuery有问题 这是我的jQuery代码: function UpdateRecord(id) { jQuery.ajax({ type: "GET", url: "index.php", data: 'id='+id, cache: true, success: function(data) { $('#output').html(data); }

我对jQuery有问题

这是我的jQuery代码:

function UpdateRecord(id)
  {
      jQuery.ajax({
       type: "GET",
       url: "index.php",
       data: 'id='+id,
       cache: true,
       success: function(data)
       {
         $('#output').html(data);

       }
     });
 }
UpdateRecord(id)从此处获取数据:

echo"<select>";
    foreach($products->fetch_products($id) as $product)
    {
        $price = $product->price;
     echo"<option value = $product->id onclick=\"UpdateRecord($product->id)\">$product->p_name</option>";
    }
    echo"</select>";
我测试了我的PHP函数,它工作正常

问题是,当我点击我的DropdOn列表并选择product时,整个
在“
价格
”字段中重复aggain,如下所示:

正常:

function UpdateRecord(id)
  {
      jQuery.ajax({
       type: "GET",
       url: "index.php",
       data: 'id='+id,
       cache: true,
       success: function(data)
       {
         $('#output').html(data);

       }
     });
 }

问题:

编辑

这是

<tbody>

<?php




foreach($category->fetch_category() as $data){

    $id = $data->id;

    echo"<tr>";
    echo"<td>";
    echo"<center>";
    echo"<input type=\"hidden\" value=\"$data->id\" />";
    echo"<p><strong>".$data->cat_name."</strong></p>";
    echo"</center>";
    echo"</td>";
    echo"<td>";
    echo"<center>";

    echo"<select>";
    foreach($products->fetch_products($id) as $product)
    {
        $price = $product->price;
    echo"<option value = $product->id onclick=\"UpdateRecord($product->id)\">$product->p_name</option>";
    }
    echo"</select>";

    echo"</center>";
    echo"</td>";

    echo"<td>";
    echo"<center>";
    echo"<input class=\"input-mini\" type=\"text\" value=\"1\"/>";
    echo"</center>";
    echo"</td>";
    $i = 0;
    foreach($products->fetch_products($id) as $pricer){
    if ($i==1) break;    

    echo"<td id=\"$pricer->category_id\">";

    echo"<center>";
    echo("<div id=\"output\"><p>$pricer->price</p></div>");
    echo"</center>";
    echo"</td>";
    $i++;
    }
    echo"</tr>";
}

?>
<tr>
<td></td>
<td></td>
<td></td>
<td>Total: </td>
</tr>

</tbody>

总数:

提前谢谢!我一整天都在试图解决这个问题…

您可能正在从接收
AJAX
请求的URL中回显整个
HTML
页面。
这就是为什么它引入了一个全新的页面,并将其替换为
$(“#output”)
。您可以发布接收AJAX请求的页面的代码吗?

您的AJAX请求将进入index.php。所以返回的数据是整个index.php页面。这就是为什么一切都在重复


我建议您创建ajax代码正在调用的另一个PHP文件,并生成希望在该PHP文件中返回的HTML。

如果您向同一页面发送请求,则应检查该页面的ajax调用,并处理所需的HTML部分。这就是您得到的
index.PHP的整个HTML您需要在ajax调用中传递另一个参数,并在顶部检查调用

function UpdateRecord(id)
  {
      jQuery.ajax({
       type: "GET",
       url: "index.php",
       data: 'id='+id+'&ajax_call=1',
       cache: true,
       success: function(data)
       {
         $('#output').html(data);

       }
     });
 }
index.php

if($_REQUEST['ajax_call']){
$i = 0;
    foreach($products->fetch_products($id) as $pricer){
    if ($i==1) break;    
    echo"<td>";
    echo"<center>";
    echo("<div id=\"output\"><p>$pricer->price</p></div>");
    echo"</center>";
    echo"</td>";
    $i++;
    }
die();

}
JS


你的代码似乎没有反映出你在帮助下遇到的问题我已经解决了,但是现在它只改变了第一个价格字段,即使我点击了另一个下拉列表。。。谢谢你的盛情款待@注意:检查所有价格字段的id属性,它们不应该相同,id应该是唯一的,这是所有ajax调用中的第一个价格字段id更新。我在“我的问题”中添加了类别id,以便您可以查看表格。是的,这就是问题所在,但现在我有另一个问题,我将其写为Tjofras答案的注释。:)您还可以使用
HTTP\u X\u REQUESTED\u和
服务器变量来检测它是否是一个ajax调用,如下所述:是的,我同意,因此上面的想法是检测ajax调用,解决方法取决于使用哪种方法choose@dianuj非常感谢你的回答和时间,你救了我的命:)谢谢
if($_REQUEST['ajax_call']){
$i = 0;
    foreach($products->fetch_products($id) as $pricer){
    if ($i==1) break;    
    echo"<td>";
    echo"<center>";
    echo("<div id=\"output\"><p>$pricer->price</p></div>");
    echo"</center>";
    echo"</td>";
    $i++;
    }
die();

}
 foreach($products->fetch_products($id) as $product)
    {
        $price = $product->price;
    echo"<option value = $product->id onclick=\"UpdateRecord($product->id,$data->id)\">$product->p_name</option>";
    }
    echo"</select>";

    echo"</center>";
    echo"</td>";

    echo"<td>";
    echo"<center>";
    echo"<input class=\"input-mini\" type=\"text\" value=\"1\"/>";
    echo"</center>";
    echo"</td>";
    $i = 0;
    foreach($products->fetch_products($id) as $pricer){
    if ($i==1) break;    

    echo"<td id=\"$pricer->category_id\">";

    echo"<center>";
    echo("<div id=\"output-$data->id\"><p>$pricer->price</p></div>");
    echo"</center>";
    echo"</td>";
    $i++;
    }
function UpdateRecord(id,cat_id)
  {
      jQuery.ajax({
       type: "GET",
       url: "index.php",
       data: 'id='+id,
       cache: true,
       success: function(data)
       {
         $('#output-'+cat_id).html(data);

       }
     });
 }