如何在echo中包含onchange中的javascript方法调用

时间:2016-03-09 11:10:44

标签: javascript php jquery html ajax

大家好我写一个回音来制作带有onchange事件的textarea。

echo "<td class='innerTable'><div>";
echo "<textarea name='comments' id='comments' onchange="saveChanges(this,$row_model['id'])" style='font-family:sans-serif;font-size:1.2em;'>";
echo "</textarea></div></td>";

我尝试在onchange上使用双引号之前使用反斜杠并使用单引号但在textarea行上继续得到解析错误。当注释更改时,应运行saveChanges javascript并且ajax调用应将新注释保存到数据库

这是我的javascript方法。

function saveChanges(object, module_id){   
    $.ajax({
        url: 'saveComments.php',
        data: 'content=' + object.value+ '&id=' + module_id,
        cache: false,
        error: function(e){
          alert(e);
        },
    success: function(response){
        // A response to say if it's updated or not
        alert(response);
    }
});   

}

5 个答案:

答案 0 :(得分:1)

您可以按如下方式使用串联:

onchange='saveChanges(this," . $row_model['id'] . ")' 

所以你回声将成为

echo "<td class='innerTable'><div>";
echo "<textarea name='comments' id='comments' onchange='saveChanges(this," . $row_model['id'] . ")' style='font-family:sans-serif;font-size:1.2em;'>";
echo "</textarea></div></td>";

答案 1 :(得分:0)

尝试将您的PHP代码更改为:

echo "<td class='innerTable'><div>";
echo <<<EOF
<textarea name='comments' id='comments' onchange="saveChanges(this,{$row_model['id']})" style='font-family:sans-serif;font-size:1.2em;'>";
EOF;
echo "</textarea></div></td>";

答案 2 :(得分:0)

public ActionResult GetCity(int idCountry)
{

    TravelEnterAdminTemplate.Models.LG.MyJsonResult myresult = new Models.LG.MyJsonResult();
    try
    {
        var citystable = db.Cities.Where(p => p.CountryId == idCountry).ToList();
        if (citystable != null)
        {
            myresult.Result = true;
            myresult.obj = citystable;

        }
        else
        {
            myresult.Result = false;
            myresult.message = "داده ای یافت نشد";
        }

    }
    catch (Exception e)
    {

        errorlog.Error("DeleteShopping", "157", e.Source.ToString(), e.Message);
        myresult.Result = false;
        myresult.message = "خطا در بارگذاری اطلاعات";

    }
    return Json(myresult, JsonRequestBehavior.AllowGet);

}

之前使用&#34; \&#34;。

在第二行中转义引号

答案 3 :(得分:0)

更改您的代码如下:

echo "<textarea name='comments' id='comments' onchange='saveChanges(this,{$row_model["id"]});' style='font-family:sans-serif;font-size:1.2em;'>";

答案 4 :(得分:0)

你试试这个

echo "<td class='innerTable'><div>";
echo "<textarea name='comments' id='comments' onchange='saveChanges(this,$row_model['id'])' style='font-family:sans-serif;font-size:1.2em;'>";
echo "</textarea></div></td>";