PHP访问在AJAX onclick事件中触发的javascript函数的名称

时间:2015-11-28 05:21:59

标签: php jquery ajax

我有几个按钮,用户可以按这些按钮来查看MySQL数据库的结果。按钮上的onclick事件触发一个AJAX调用,该调用将消失,并检索与按下哪个按钮重合的数据。

根据按下的按钮调用以下功能之一。

<script language="JavaScript">
   function ChangeText1() { 
      $("#ajax_content").load("zone_code.php #zone_code1");}
   function ChangeText2() {
      $("#ajax_content").load("zone_code.php #zone_code2");}
   function ChangeText3() {
      $("#ajax_content").load("zone_code.php #zone_code3");}
</script>

以下是zones.php上的按钮:

<button type="button" class="active zone" name="z1" onclick="ChangeText1()">Zone 1</button>
<button type="button" class="active_zone" name="z2" onclick="ChangeText2()">Zone 2</button>
<button type="button" class="active_zone" name="z3" onclick="ChangeText3()">Zone 3</button>

以下是按下按钮时从zone_code.php检索到的php代码:

<div id="zone_code1">
    <?php echo '<p>' . $all_results[0]['zone_desc'] . '</p>'; ?>
</div>

<div id="zone_code2">
    <?php echo '<p>' . $all_results[1]['zone_desc'] . '</p>'; ?>
</div>

<div id="zone_code3">
    <?php echo '<p>' . $all_results[2]['zone_desc'] . '</p>'; ?>
</div>

这是在zone.php上的div,由ajax调用填充:

<div id="ajax_content">
    <p>Choose a zone</p>
</div>

现在,代码可以很好地调用区域描述中的任何一个按钮,区域1,区域2或区域3.但我还想知道哪个按钮被按下,是否是数字1,2或3.根据他们按下的按钮,我想用PHP做更多的操作。

由于各种原因,我无法将按钮设置为提交按钮,或者将其放在表单标签之间。我也无法在按钮中嵌入链接。原因太复杂了,无法进入这里。因此,我希望能够访问被点击的功能的名称,或者点击的按钮名称

这可能看起来很简单,但我是一个javascript新手,而且对php更加舒服。我在PHP中尝试了各种if语句,当然这些语句不起作用,因为javascript是客户端而PHP是服务器端。我已经谷歌搜索了几个小时,但是找不到足够接近我的情况来解决这个问题。我不会在这里包括那些失败的尝试,为了尽可能地保持这个。我只想说我试过......我真的很努力。

我非常感谢这方面的帮助。提前感谢您的善意和考虑。

3 个答案:

答案 0 :(得分:1)

sign_in :user, user_instance
sign_in :admin, admin_user_instance      

然后它应该在zone_code.php&#39; s $ _GET [&#39; zone&#39;],&#34; 1&#34;或&#34; 2&#34;或&#34; 3&#34; ^^

答案 1 :(得分:1)

您可以像这样简化代码 -

<script language="JavaScript">
  function ChangeText(code) { 
     $("#ajax_content").load("zone_code.php?zoneCode="+code+" #zone_code"+code);
   }
</script>

现在在HTML中 -

 <button type="button" class="active zone" name="z1"  onclick="ChangeText(1)">Zone 1</button>
 <button type="button" class="active_zone" name="z2" onclick="ChangeText(2)">Zone 2</button>
 <button type="button" class="active_zone" name="z3" onclick="ChangeText(3)">Zone 3</button>

在您的PHP代码中,您可以按以下方式获取zoneCode -

$zoneCode = $_GET["zoneCode"]

答案 2 :(得分:0)

正如我们之前所说的那样(见评论)我会做类似的事情,然后按钮名是后期处理:

<script language="JavaScript">
   function ChangeText(value) { 
      $("#ajax_content").load("zone_code.php #zone_code"+value, {buttonName:"z"+value});
   }

</script>

或类似的,然后使用get process

发送buttonName
 <script language="JavaScript">
       function ChangeText(value) { 
          $("#ajax_content").load("zone_code.php #zone_code"+value, "buttonName=z"+value);
       }

</script>

在上面两个代码中你可以使用$(“#zone_code”+ value)。load(“zone_code.php”)而不是$(“#ajax_content”)。load(“zone_code.php #zone_code”+值)

还有另一篇关于此here

的帖子

并在你的HTML中

<button type="button" class="active zone" name="z1"  onclick="ChangeText(1)">Zone 1</button>
 <button type="button" class="active_zone" name="z2" onclick="ChangeText(2)">Zone 2</button>
 <button type="button" class="active_zone" name="z3" onclick="ChangeText(3)">Zone 3</button>