如果单击并卷曲,如何从PHP调用JavaScript函数? - javascript

我有一个小项目,我尝试从一个域中获取数据并将此信息放入输入字段中。

卷曲功能很好并且可以正常工作。但是,jQuery脚本如果不起作用或无法填写输入字段。如果我使用$url = "http://domain...";,则所有内容都可以处理页面加载,但是如果我使用带有按钮和发布表单的输入字段,则这些字段为空。卷发有效,并返回整页。

如何在加载curl脚本之后使用相同的按钮加载脚本?

按键:

<form action="" method="POST">
    <label for="name">URLinput</label>
    <input type="url" id="inf_endpoint" name="inf_endpoint" value="" />
    <button type="submit" name="mytest">Test This</button>
</form>

我尝试过的

    <?php
if(isset($_POST['mytest'])){
    $url=$_POST['inf_endpoint'];
    $agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_VERBOSE, true);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_URL, html_entity_decode($url));
    $data = curl_exec($ch);
    if($result === false){
        echo 'Curl error: ' . curl_error($ch);
    }else{
        echo 'All is good';
        ?>
        <script>
            jQuery.ajax({

              url: '<?php echo site_url('admin/matches/manage'); ?>',
              type: 'GET',
              success: function(res) {


                  var data = jQuery.parseHTML(res);  
                     jQuery(data).find('div.right').each(function(){
                     $('#date').val(jQuery(this).html()); 
                   });

                   var data = jQuery.parseHTML(res);  
                     jQuery(data).find('div.team a:first').each(function(){
                     $('#team1').val(jQuery(this).html()); 
                   });

                   var data = jQuery.parseHTML(res);  
                     jQuery(data).find('div.team a:nth-child(2)').each(function(){
                     $('#team2').val(jQuery(this).html()); 
                   });

                   var data = jQuery.parseHTML(res);  
                     jQuery(data).find('div.match_head .left a:first').each(function(){
                     $('#league').val(jQuery(this).html()); 
                   });

                   var data = jQuery.parseHTML(res);  
                     jQuery(data).find('div.score').each(function(){
                     $('#result').val(jQuery(this).html()); 
                   });

                   var data = jQuery.parseHTML(res);  
                     jQuery(data).find('div.team_logo a:first').each(function(){
                     $('#logo1').val(jQuery(this).html()); 
                   });

                   var data = jQuery.parseHTML(res);  
                     jQuery(data).find('div.oppo2 a:first').each(function(){
                     $('#logo2').val(jQuery(this).html()); 
                   });

                }
            });
        </script>
        <?php
    }
    curl_close($ch);
    echo $data;
} 
?>

但这正在处理页面加载。但是没有带有if语句的click

$url="https://thedomain";
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, html_entity_decode($url));
$data = curl_exec($ch);
if($result === false){
    echo 'Curl error: ' . curl_error($ch);
}else{
    echo 'All is good';
}
curl_close($ch);
echo $data;

jQuery.ajax({

      url: '<?php echo site_url('admin/matches/manage'); ?>',
      type: 'GET',
      success: function(res) {


          var data = jQuery.parseHTML(res);  
             jQuery(data).find('div.right').each(function(){
             $('#date').val(jQuery(this).html()); 
           });

           var data = jQuery.parseHTML(res);  
             jQuery(data).find('div.team a:first').each(function(){
             $('#team1').val(jQuery(this).html()); 
           });

           var data = jQuery.parseHTML(res);  
             jQuery(data).find('div.team a:nth-child(2)').each(function(){
             $('#team2').val(jQuery(this).html()); 
           });

           var data = jQuery.parseHTML(res);  
             jQuery(data).find('div.match_head .left a:first').each(function(){
             $('#league').val(jQuery(this).html()); 
           });

           var data = jQuery.parseHTML(res);  
             jQuery(data).find('div.score').each(function(){
             $('#result').val(jQuery(this).html()); 
           });

           var data = jQuery.parseHTML(res);  
             jQuery(data).find('div.team_logo a:first').each(function(){
             $('#logo1').val(jQuery(this).html()); 
           });

           var data = jQuery.parseHTML(res);  
             jQuery(data).find('div.oppo2 a:first').each(function(){
             $('#logo2').val(jQuery(this).html()); 
           });

        }
    });

如果没有单击功能>页面正在加载和填充字段。

参考方案

即使在与服务器打交道时,cURL也会带来安全风险,但让我尝试指出一些事项。有人可以在你和你的卷发之间穿梭,魔术可以发生。

您的第一行,我认为它没有做适当的检查

  <?php
if(isset($_POST['mytest'])){

改成

<?php
if(isset($_POST['Submit'])){

甚至更好

if($_SERVER['REQUEST_METHOD']=='POST'){

其次,我看不到设置$ result的位置,请更改以下内容

if($result === false){

if(empty($data)){

我希望能解决遗漏的问题

如何单击没有固定类别值的按钮?但是它有一个固定的'data-testid' - javascript

如何单击没有固定类别值的按钮?但是它有一个固定的“数据-testid”。使用JS或Python如何实现?document.getElementById("myCheck").click(); 参考方案 您可以尝试使用querySelector()来使用任何有效的CSS选择器(即属性选择器)。演示:function muFunction()…

jQuery val函数在隐藏字段上不起作用? - javascript

这是我的HTML代码:<div style='display:none;' id='allformid'> <div> <form action='#'> <input type='text' name='name' …

jQuery ajax发布电子邮件字段 - javascript

我不确定为什么我无法发布电子邮件字段的内容,这是我的代码。<html> <head> <title></title> <script src="//code.jquery.com/jquery-1.11.2.min.js"></script> </head>…

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

Python返回jsonp自动完成 - javascript

我正在使用devbridge https://www.devbridge.com/sourcery/components/jquery-autocomplete/的自动完成功能。我正在尝试在同一服务器内但在不同端口中获取json数据。所以我对跨域有问题。我已经尝试并阅读了有关此问题的许多不同方法,但是我无法设法解决它。所以我有一个python函数返回此:fo…